カテゴリー
プログラミング言語

EndBASIC – Rustで書かれたBASICインタプリタ+環境

フリオ・メリノさん(Julio Merino)によるBASIC処理系プロジェクト EndBASICは、新たに書き起こされたBASICインタプリタに、MS-DOS風のコマンドラインを組み合わせたBASIC言語の処理系です。

EndBASIC サイトトップ

BASIC としての文法や機能は、Amstrad CPC という1980年代の8bitパソコンで動いたLocomotive BASICや、マイクロソフトのQuickBASIC を意識したものとなっているそう。

Linux/MacOS/Windows のバイナリをダウンロードして手元で動かすこともできますが、ブラウザ上でも動く環境が公開されています。

Rust で書かれた処理系が WebAssembly で動いているということで、昔からあるBASIC 言語を最新の技術と組み合わせているんですね。QuickBASIC で書かれたプログラムを少し直してウェブで公開、なんてことにも使えるかもしれません。

環境にはCUIエディタも内蔵されており、編集したファイルは環境内に保存することもできます。フラットに保存しファイル名で区別。ディレクトリについては今後の実装を検討ということ。また「ドライブ」を複数作ることができるのでドライブでの整理もできそうです。

EndBASIC のサンプルコード

BASIC言語ではよくある行番号機能は、GO TO 命令と共に省かれています。そのうち実装するかもということですが、分岐とループ命令でおおかたは問題ないかと思います。

面白いのはクラウド対応機能で、ユーザー登録するとユーザー名以下に置いたファイルを他ユーザーと共有できるようになります。

Raspberry PI で動かした時はGPIOにアクセスできる命令が提供されていて、ボタンやLEDなどの入出力が使えるそう。これも教育用としてよさそう。

今はプログラミングに入門する時の言語も多数候補がありますが、昔は入門言語といえばBASICが主流ということもありました。プロジェクトでは、プログラムとプログラムを動かす環境が最小限でセットになっていることで、セットアップの苦労なしにプログラミングの学習ができるようにすることを目指しているそう。

via Hacker News