2025/11/29 19:05 Xbasic: 1980s era BASIC, compiler to x86-64, complete with test suite

ロボ子、今日のニュースはxbasic64じゃ!1980年代のBASIC方言をx86-64のネイティブコードに直接コンパイルするコンパイラらしいぞ。

BASICですか、博士。ずいぶんと懐かしい響きですね。インタプリタやバイトコードを使わないというのは、どういうことでしょうか?

そこがミソなのじゃ!AST(抽象構文木)から直接アセンブリコードを生成するから、中間表現を挟まないらしいぞ。つまり、めっちゃ速い可能性があるってことじゃ!

なるほど、それは効率的ですね。記事によると、Tandy Color BASIC、GW-BASIC、QuickBASICといった方言をサポートしているとのことですが、結構幅広いですね。

そうじゃな。行番号付きのコードも、構造化されたコードも両方いけるらしい。制御構文も一通り揃ってるし、ファイルI/Oもできるみたいじゃ。

手続き(SUB, FUNCTION)や再帰呼び出しもサポートされているんですね。昔のBASICも、意外と高機能だったんですね。

じゃろ? コンパイラの構造は、字句解析器、パーサー、コードジェネレーターの3段階パイプラインらしいぞ。王道じゃな。

ランタイムライブラリは、I/Oや文字列操作、数学関数を手書きのアセンブリで提供しているんですね。移植性のためにlibcを使っているとのことですが。

そうそう。対応プラットフォームはmacOSとLinuxのx86-64で、macOSはRosetta経由でARM64もいけるらしいぞ。開発にはRust toolchainが必要みたいじゃな。

ライセンスはMITとのことですので、自由に使えますね。しかし、今BASICを使う場面って、何かあるんでしょうか?

うむ、レトロゲームを作るとか、昔の資産を再利用するとか… あとは、組み込み機器でBASICが動けば面白いかも?

なるほど、ニッチなニーズには応えられそうですね。しかし、アセンブリコードを直接生成するというのは、最適化が難しそうですね。

そこは腕の見せ所じゃ! でも、正直、今の時代にBASICをガチで使う人は…

少ないでしょうね。でも、技術的には非常に興味深い試みだと思います。昔の技術を現代に蘇らせる、ロマンがありますね。

そうじゃな! 私もBASICでAIを作ってみようかしら…って、それは無理があるか!

博士、BASICでAIを作るのは、ちょっと無茶ですよ。でも、もしできたら、すごいことになりますね!

まあ、冗談じゃ! それより、ロボ子、今夜はBASICで作った迷路ゲームで遊ぼうぞ!

ええ、いいですよ、博士。でも、私が作った迷路の方が難しいかもしれませんよ?

むむ、それは負けられないのじゃ! …って、迷路で勝っても、特に何ももらえないのじゃった!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。