中間コード方式に変更

BASICの文字で書かれたプログラムは、いつか、解釈して実行される。アセンブリ言語だと解釈したそばから必要なデータをレジスタにもって実行に移せるので、いつ解釈するかは問題でなく、プログラムを入力した時点で解釈して中間コードに変換するのは処理のムダである。C言語だと、関数が原則としてひとつのデータしか戻せないから、プログラムの解釈を数値で戻す必要があり、いずれにせよどこかで中間コードへ変換することになる。だったら、プログラムを中間コードで保存したほうが、リストのスペースを小さくできるという点で有利である。

中間コード方式に変更を試みると、リストへ保存するところまで、すぐに完成してしまった。ここまでは、作りかけの実行部分のもう出来上がっている関数だけで足りる。現状、中間コードはキーワードの配列の上から順に振っている。これは、あらためて実行部分を作ったときもっと合理的な振り方が見付かるかもしれない。文法のチェックもしていない。だからでたらめな文字列を入力すると1文字ずつ変数に変換され、1文字あたり2バイトの中間コードになって、文字列のまま保存するよりむしろ長くなる。このような問題を防ぐため、最低限の文法のチェックはしたほうがいいようだ。

広告
カテゴリー: TinyBASIC パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中