オーバーロード
abdev 12月 17th, 2005土・日・月と、仕事が空きました。これがおいら達の冬休み。
この空きを利用して、最近サボッていたAB開発を進めます。今日の作業は関数のオーバーロードの対処。オーバーロードというと、パラメータが異なる同じ名前の関数を活用する手法のことですね☆
Ver3.0から熟成されたABコンパイラはオーバーロードのことなんか一切考えておりません(泣
1. 関数名を識別し、呼び出し先アドレス及び仮引数データを取得
2. パラメータをセット(と同時にパラメータのエラーチェック)
3. call命令を発行
以前までは、上記のような手順で構文解析を行っていたところを、下記のような流れに修正していきます。
1. 関数名を識別し、同一関数の名前リストを生成
2. 実引数と仮引数を識別しながらオーバーロードを解決。呼び出し先アドレス及び仮引数データを取得。
3. パラメータをセット(と同時にパラメータのエラーチェック)
3. call命令を発行
と、こんな感じの作業を64コンパイラに対して行いました。実は、64コンパイラは32コンパイラからの移行作業の段階で、かなり洗練されたモノになっております。で、アーキテクチャの構造上、データの扱い方も違うわけで…
今回のようなオーバーロードの解決、というだけの作業も、64コンパイラと32コンパイラ、両方行わなければなりません。一応、最近見慣れた64コンパイラのコードを改良できたので、これから32コンパイラのほうを着手しなければなりません。
がんばるかー。←休日の文字はどこいった!?
12月 21st, 2005 at 8時56分16秒
コメント書こうと思ったけど全然わかんなかった(>_<)今年もあと少しやね、こんな早さで「あっ!」という間に歳を取ってくなんて恐ろしい。あたいも頑張ります!