Python インタープリタを1024バイトのCで実装

Original : Making a Python interpreter in 1024 bytes

Pourquoi c'est important

制約付き実装で言語処理系の本質を示す教育的事例として注目される。

Microsoft のエンジニア Austin Henley 氏が、マクロや外部ライブラリを使わずに1024バイトのC言語でPythonサブセットのインタープリタを実装。FizzBuzzを含む基本的なPython構文を実行可能にした個人プロジェクト。

Austin Z. Henley 氏(Microsoft)は週末の個人課題として、1024バイト以内のC言語でPythonインタープリタを作成した。当初は512バイトを目標としたが断念し、1024バイトに引き上げた。

実装はCPythonのようなAST生成やバイトコード発行を行わず、グローバル変数で状態を管理するシンプルな再帰下降パーサ方式を採用。ソースコードは固定長配列(999文字)に格納し、変数名は小文字1文字に限定することでシンボルテーブルを配列インデックスで直接参照する。

対応構文は`def`、`for`/`while`/`if`、`print`、`range`など。インデントによるブロック制御はCのコールスタックで再現し、ループはソース上の位置を巻き戻すことで実現。エラー処理は一切なく、入力コードの正確さを前提としている。FizzBuzzの実行に成功しており、Pythonらしい外観を持つ最小限のサブセットとして機能する。

Source

austinhenley.com — Lire l'original →