土・日・月と、仕事が空きました。これがおいら達の冬休み。

この空きを利用して、最近サボッていたAB開発を進めます。今日の作業は関数のオーバーロードの対処。オーバーロードというと、パラメータが異なる同じ名前の関数を活用する手法のことですね☆

Ver3.0から熟成されたABコンパイラはオーバーロードのことなんか一切考えておりません(泣

1. 関数名を識別し、呼び出し先アドレス及び仮引数データを取得

2. パラメータをセット(と同時にパラメータのエラーチェック)

3. call命令を発行

以前までは、上記のような手順で構文解析を行っていたところを、下記のような流れに修正していきます。

1. 関数名を識別し、同一関数の名前リストを生成

2. 実引数と仮引数を識別しながらオーバーロードを解決。呼び出し先アドレス及び仮引数データを取得。

3. パラメータをセット(と同時にパラメータのエラーチェック)

3. call命令を発行

と、こんな感じの作業を64コンパイラに対して行いました。実は、64コンパイラは32コンパイラからの移行作業の段階で、かなり洗練されたモノになっております。で、アーキテクチャの構造上、データの扱い方も違うわけで…

今回のようなオーバーロードの解決、というだけの作業も、64コンパイラと32コンパイラ、両方行わなければなりません。一応、最近見慣れた64コンパイラのコードを改良できたので、これから32コンパイラのほうを着手しなければなりません。

がんばるかー。←休日の文字はどこいった!?