内部構造について。 !!! 変数 以前はグローバル変数がたくさんあったが、なるべく局所化してみる。 関数が必要とする値は、なるべく引数として渡す。 !!! 構造体 スタックやワード・変数の管理テーブルを構造体として定義する。 !!! ワードの処理 ワードを切り出したら、即座に対応する処理ルーチンを呼び出せるか? 例えばifワードは、分岐先が確定していないと分岐先にジャンプすることが出来ない。 つまり、対話環境でそのワードが入力されても、それだけで処理を行うことが出来ないワードである。 そこで、入力→コンパイル→実行とするために、バッファを用意する。 !!! 内部インタプリタ [[色々な方式がある|Threaded Code]]が、コールスレッディングを用いる。 C言語で作るときは、これが一番互換性がある。 !!! 構文解析 以前作った関数parse()は、if〜elseの嵐だったので、もう少しスマートにする。 順番に文字列を比較することは、変わらない。 [[戻る|Forthを作ってみる2]] [[前へ|Forthを作ってみる2]] [[次へ|Forthを作ってみる2 / 対話環境を作る]] :Amazonリンク:[言語設計者たちが考えること|http://www.amazon.co.jp/gp/product/4873114713/ref=as_li_ss_tl?ie=UTF8&tag=moi0e-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4873114713] {{adsence}}