HeadlinesBriefing favicon HeadlinesBriefing.com

1024バイト Pythonインタプリタ コードゴルフ

Hacker News •
×

Austin Z. Henleyは週末に手でコードを書く開発者で、わずか1024バイトのCコードでPythonインタプリタを構築するコードゴルフチャレンジを発表しました。このプロジェクトはマクロと外部ライブラリを明示的に回避します。Henleyはまず、括弧を使わずにコロンとインデントを使ってPythonの構文を模倣するFizzBuzzプログラムを実装しました。彼は、Python言語全体をこのような小さなフットプリントに収めることは不可能であると指摘し、そのため「Pythonっぽい」見た目の構文サブセットに焦点を当てました。初期の試みは不成功でした。基本的な電卓はすぐに512バイトの制限を超えました。その後、戦略を変更し、Pythonらしさのある要素をリストアップしながら、512バイトの目標には自分のコードゴルフスキルが不十分であることを認めました。まず動くようにしてから、小さくすることにしました。インタプリタは、グローバル変数に保持される最小限の状態、生コード用の固定長配列、および変数のシンボルテーブルを使用します。式を再帰的に解析し、Cの呼び出しスタックを使って制御フローを処理します。ループは後方にジャンプし、各イテレーションでソースコードを再解析することで動作します。このプロジェクトは、言語実装の制約におけるユニークな演習を表しています。