トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

Forthを作ってみる2 / 構造を考える

内部構造について。

変数

以前はグローバル変数がたくさんあったが、なるべく局所化してみる。関数が必要とする値は、なるべく引数として渡す。

構造体

スタックやワード・変数の管理テーブルを構造体として定義する。

ワードの処理

ワードを切り出したら、即座に対応する処理ルーチンを呼び出せるか?

例えばifワードは、分岐先が確定していないと分岐先にジャンプすることが出来ない。つまり、対話環境でそのワードが入力されても、それだけで処理を行うことが出来ないワードである。

そこで、入力→コンパイル→実行とするために、バッファを用意する。

内部インタプリタ

色々な方式があるが、コールスレッディングを用いる。C言語で作るときは、これが一番互換性がある。

構文解析

以前作った関数parse()は、if〜elseの嵐だったので、もう少しスマートにする。順番に文字列を比較することは、変わらない。

戻る 前へ 次へ

Amazonリンク
言語設計者たちが考えること