PHP を魔改造して学ぶ言語処理系 by nsfisis

PHPerKaigi 2026
採択
2026/03/22 10:25〜
Track A
レギュラートーク(20分)

PHP を魔改造して学ぶ言語処理系

nsfisis nsfisis nsfisis
3

プログラミング言語の処理系は複雑な処理を行っているように見えますが、個別に分解してみれば一つ一つの処理はそれほど難しくありません。
しかしながら、PHP 処理系のような実用的な言語の処理系は大規模かつ複雑であり、全体の構造を把握したり、どこから読んでいけばよいのか見定めたりするのには一定の事前知識が必要です。

ここでは、PHP 処理系のソースコードを魔改造して PHP 言語に独自の拡張を施すことで、日ごろ使っている PHP の処理系が内部的にどのような処理を行っているのかを追いかけてみましょう。

話すこと

  • PHP のソースコードを改造し、関数の合成を行う独自の演算子を追加する
  • 言語処理系がどのような処理を行っているのか、はじめからおわりまで一通りさらう
    • 字句解析
    • 構文解析
    • コンパイル
    • 実行

目的としないこと

  • PHP に実用的な拡張をおこなうこと