C言語1024バイトでPythonインタープリタを実装
Judul asli: Making a Python interpreter in 1024 bytes
Mengapa Ini Penting
コード制約下での言語処理系設計の教育的事例として注目される実装
Austin Z. HenleyがMicrosoftのエンジニアとして趣味でCコード1024バイト以内のPythonインタープリタを作成。マクロやライブラリなしでFizzBuzzを動作させた。
Austin Z. Henley氏(Microsoft所属)は、週末の個人プロジェクトとして、Cコード1024バイト以内でPythonインタープリタを実装した。最初は512バイトを目標にしたが超過し、1024バイトに上限を引き上げた。
インタープリタはCPythonのような字句解析・AST生成・バイトコード出力は行わず、グローバル変数で状態を管理する。ソースコードは999文字固定配列に格納し、変数名は小文字1文字のみに制限することでシンボルテーブルを配列インデックスで直接参照する。
式の評価は再帰下降パーサで行い、エラー処理は一切省略。キーワードのスペルが正しいことを前提とした設計だ。制御フローはCのコールスタックを活用し、インデントが減少した時点でブロック実行関数が返る仕組みを採用。`for`ループや`while`ループも`range()`限定で対応し、FizzBuzzプログラムを正常に実行できることを確認した。`def`・コロン・インデントによるPythonらしい構文も維持している。