課題&野望

課題
「へたれBASIC」は使えない言語ですが、以下のような機能を加えれば、多少まともになるかも知れません。

ファイル入出力機能
現バージョンの言語仕様では、標準入出力に対してしかデータのやり取りを行うことができません。任意のファイルを処理する機能を導入して、データ処理の結果をファイル内に残せるようにします。また複数のファイル間でデータのやり取りをすることで、より突っ込んだデータ処理を行えるようにします。
構文木のクラス化
現バージョンでは構文木のクラス化が不完全なため、翻訳過程は見通しの付き難い関数呼び出しが行われる形態となってしまっています。構文規則毎に、構文木クラスのサブクラスを用意して、実行コードの生成は全て構文木サブクラスの生成用メンバ関数に依頼するようにします。構文木の生成段階と、実行コードの生成段階を時間的にも、意味的にも分離することで、見通しも立て易くします。言語仕様がパワーアップする訳ではありませんが、開発の見通しを立てやすくするのも重要ですので…。
関数定義機能、スコープ
現バージョンの言語仕様では、処理の単位といった概念はなく、どんな変数でも最初の代入が行われた位置から、ソースコードの最後まで、アクセスすることができます。単純なプログラムならこれでも問題ありませんが、ある程度複雑で組織化した処理を行おうとすると、プログラムの見通しが立て辛くなってしまいます。
関数定義を導入して、ある関数の内部でのみ生存可能なローカル変数を導入することで、コードの役割分担を行えるようにします。
基本型を増やす
「へたれBASIC」では、翻訳処理の実装としては配列や関数なども型の一種として扱っていますが、実際、基本型として意識されるのは、整数型と文字列型くらいなものです。数値演算を行う浮動小数点型や、金額計算に使う通貨型などの型も導入して、それらの型の間での型変換機能も加えたいです。
文字列処理機能の強化
文字列型や連想配列の機能は、豊富な文字列処理機能と相まって、その真価が発揮されます。しかし、現バージョンでは、これらの機能を十分に生かせるだけの文字列処理機能がありません。文字列処理機能(関数)を豊富に用意することで、テキスト解析や、HTMLの生成など、便利なテキスト処理プログラムを簡単に作れるように・ オたいです。

野望
将来は、こんなのが出来たらカッコいいと思います。

GUIを中心とした、Windowsの機能を使えるようにする
やっぱり絵が動いたりしたらカッコ良いですし、BGMなんかが鳴ったらとても凄そうな感じがします。最近、論理パズルごちゃごちゃばかりで、APIガチャガチャを懐かしく思いますので、この機能は早めに実装にとりかかるかも…。
抽象データ型(クラス)の導入
この機能を導入して、本格的なオブジェクト指向言語を目指したいところです。しかしそうなると言語仕様の大改造ということになりますが…。構造体すらサポートしていないので…。でもGUIとやり取りすることを考えると、付けておきたい機能です。せめて、組込みクラスという形でも…。
 
前のページへ   次のページへ 
言語処理系の制作に戻る
もくじに戻る