LLMで実現した関数型AWK風言語「FAWK」、 Advent of Codeで実証
プログラミング言語AWKの限界に直面した開発者が、AIを活用して「機能的で現代的なAWKの進化版」を構想し、実現に成功した。この新言語は「FAWK」と名付けられ、GitHubのjaniček/fawkで公開されている。作者は、アドベント・オブ・コード(Advent of Code)の問題を解く中で、AWKの不変性や関数型の制約に苦戦。特に、配列の戻り値、ラムダ関数、静的スコープ、パイプライン処理といった現代言語の特徴が欠如していることに気づき、それらを備えた「理想のAWK」の構想を抱く。 この構想を実現するために、開発者はAIアシスタント「Cursor Agent」に、PythonでFAWKのインタプリタを実装してもらうよう依頼。LLM(Sonnet 4.5)は、意図した機能の多くを正しく実装。配列リテラル、関数の戻り値、ラムダ、静的スコープ、パイプライン処理、リダイレクト対応のprint文、多次元配列など、複雑な機能も一貫して正しく実装。また、GAWKとの互換性も維持。唯一の難関は任意精度浮動小数点演算で、Taylor展開の実装に失敗。しかし、外部ライブラリ「mpmath」の導入を指示したところ、即座に修正が完了。 結果、FAWKは一連のエンドツーエンドテストを通過し、想定された機能をほぼ完全に実現。開発者は「AIが一晩で新しい言語のインタプリタを実装した」と驚き、LLMの能力に新たな認識を改める。 ただし、問題も浮上。AIが生成したコードは「ブラックボックス」であり、開発者は実装の詳細を理解していない。今後のメンテナンスやカスタマイズには課題がある。また、性能は現時点では非課題だが、実用用途には向かない。 開発者は自らのプロジェクト「Cara」(Hindley-Milner型システム搭載言語)についても、AIに実装を依頼できる可能性を検討。ただし、自己の理解を失わないよう、コードレビューに時間を割く姿勢を意識する必要があると述べている。 FAWKは一時的なスクリプト用途に最適で、開発者は実際にアドベント・オブ・コード2025の問題に適用し、実用性を検証する予定。この出来事は、AIが言語設計の初期段階から実装までを支援する「Vibe Coding」の可能性を示す、画期的な一例となった。
