タグ

ブックマーク / qiita.com/hnw (1)

  • PHP7調査(2)コンパイル時にASTを構築するようになった - Qiita

    PHP7から内部的にAST(抽象構文木)が実装されるよ!とのこと。反対票ゼロでPHP7への採用が決まっています。 構文解析とコンパイルの分離 PHPでは構文解析にYACCを利用しています。YACCでの構文解析は、概念的には構文木を辿るような処理なのですが、これまでのPHPでは実装として木構造を構築することはせず、構文解析をしながら即座にopcodeを作り出すような処理をしていました。 このようなつくりが原因で、これまでのPHPではYACCレベルの文法が冗長になったり、PHP文法に一見無意味な制約ができたりしていました。 PHP7からは一度ASTを作りあげてからopcodeの生成を行うため、パーサーや最適化の実装がシンプルになって保守性が上がったり、これまで技術的な理由で不可能だったスマートな文法が導入しやすくなると期待できます。 ソースコードを見たい方のために実装箇所も紹介しておきます。現

    PHP7調査(2)コンパイル時にASTを構築するようになった - Qiita
    manaten
    manaten 2014/11/07
  • 1