1024バイトのPythonインタープリタをC言語で実装
원제: Making a Python interpreter in 1024 bytes
왜 중요한가
極限的なサイズ制約下での言語処理系実装は、コンパイラ・インタープリタ設計の本質的な理解を深める教育的事例として注目される。
Microsoft所属のAustin Z. Henley氏が2026年9月6日、1024バイトのC言語コードのみでPythonインタープリタを実装したことをブログで公開した。マクロやライブラリ関数を使用せず、FizzBuzzなどのPythonらしい構文を実行できるサブセットを実現した。
Austin Z. Henley氏はMicrosoftに所属するエンジニアで、週末の趣味として手書きコードの挑戦を続けている。今回の目標は、1024バイト以内のC言語コードでPythonインタープリタを実装することだった。当初は512バイトを目指したが、基本的な計算機能を実装した時点で既に上限を超えたため、1024バイトに目標を変更した。
実装したインタープリタは、CPythonのようにトークン化・AST生成・バイトコード生成を行わず、再帰下降パーサーで直接実行する方式を採用している。状態管理にはグローバル変数のみを使用し、ソースコードは999文字の固定長配列に格納する。変数名は1文字の小文字に限定することで、シンボルテーブルの直接参照を実現している。
対応する構文はPythonのサブセットで、`def`による関数定義、`for`ループ(`range`のみ)、`while`、`if`/`else`、文字列リテラル、四則演算、比較演算子などを含む。インデントを用いたブロック管理はC言語のコールスタックを利用して再帰的に処理する。エラー処理は一切実装されておらず、入力コードの正確さを前提としている。
Henley氏は過去にも「Teeny Tiny compiler」など小規模言語実装を手がけており、今回の実装もその延長として公開された。ソースコードはブログ上で全文公開されている。