ASTって面白いね!あなたがコンパイラじゃなくても、役に立つよ by きんじょうひでき

PHPカンファレンス香川2025
レギュラートーク (30分+Q&A5分)

ASTって面白いね!あなたがコンパイラじゃなくても、役に立つよ

o0h_ きんじょうひでき o0h_
4

このトークは

  • AST(抽象構文木)はコンパイラにとって便利なものだが、それ以外にも便利に使える
  • ASTって何だろう?を知って、その便利な活用例も知ろう

モチベーション

phperの皆さんは、アルファベットや数字に記号などなどをファイル上に並べていきますよね。
私達が直接的に生産するのは、ただの「文字の羅列」に過ぎません。
これを文法の枠組みに則って解釈することで、文や句と行った構造が手に入るのです。
例えば class Hoge{} と書かれていれば、「1つのクラスが定義されていて、そのクラスはHogeという名を持つ」といった具合です。

ASTの主な利用者はコンパイラでしょう。
人間が読み書きしやすい文字の羅列を、機械のための表現に変換する過程で現れます。

そして、「字句レベルではない、構造化されたレベルでコードを扱える」ことが、
コンパイラ以外にも色々な可能性をもたらします。
より抽象的な理解や操作が容易になり、色々な作業やコード品質の担保をお手軽なものにしてくれるのです。

そんなASTについて、「確かに面白いね!」と感じる人を増やしたいトークです

話すこと

対象(難易度)

  • 「ASTって何だろう?」と感じる人や「聞いたことはあるけど、具体的には知らないな」という人
  • 「ASTを利用したツールを使ったことはあるが、その内部にある仕組みまでは知らないな」という人