注目★★★★★Lobsters
C 1024 バイトで Python 風インタプリタを実装
30秒で把握
- 1C 1024 バイトで Python サブセットの実行系を実装
- 2FizzBuzz・def・if・for・while・関数呼び出しに対応
- 3AST とバイトコードを省きソース再解析で実行
要約
著者は、GNU C89 のコードゴルフ技法を使い、1024 バイトの C コードで Python のサブセットを実行するインタプリタを実装した。def、if、while、for、関数呼び出し、FizzBuzz などを扱う一方、変数名は小文字 1 文字に限定し、エラー処理や多くの比較機能を省いた。CPython のようなトークン化や AST、バイトコード生成は行わず、ソースを再解析しながら式を実行する。可読版は 4800 バイト超だが、機能を削って最終版を 1024 バイトに収めた。
あなたへの影響
組み込みや教育目的で小規模処理系を扱う日本のエンジニアには、機能制限と再解析による実装例として参考になる。
推奨:実装を読む際は、エラー処理なし・変数名制限・GNU C89 依存を前提に検証したい。