PHP7から内部的にAST(抽象構文木)が実装されるよ!とのこと。反対票ゼロでPHP7への採用が決まっています。 構文解析とコンパイルの分離 PHPでは構文解析にYACCを利用しています。YACCでの構文解析は、概念的には構文木を辿るような処理なのですが、これまでのPHPでは実装として木構造を構築することはせず、構文解析をしながら即座にopcodeを作り出すような処理をしていました。 このようなつくりが原因で、これまでのPHPではYACCレベルの文法が冗長になったり、PHP文法に一見無意味な制約ができたりしていました。 PHP7からは一度ASTを作りあげてからopcodeの生成を行うため、パーサーや最適化の実装がシンプルになって保守性が上がったり、これまで技術的な理由で不可能だったスマートな文法が導入しやすくなると期待できます。 ソースコードを見たい方のために実装箇所も紹介しておきます。現
![PHP7調査(2)コンパイル時にASTを構築するようになった - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/325332c01cf891d496a1e1ad0e8fdd17e0703945/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UEhQNyVFOCVBQSVCRiVFNiU5RiVCQiUyODIlMjklRTMlODIlQjMlRTMlODMlQjMlRTMlODMlOTElRTMlODIlQTQlRTMlODMlQUIlRTYlOTklODIlRTMlODElQUJBU1QlRTMlODIlOTIlRTYlQTclOEIlRTclQUYlODklRTMlODElOTklRTMlODIlOEIlRTMlODIlODglRTMlODElODYlRTMlODElQUIlRTMlODElQUElRTMlODElQTMlRTMlODElOUYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTM4MTc1ZDU3NDU1ZTE5NDJiNzQ3ZWY0YmQ2ZDRhZmY3%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaG53JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hYzY5YzFmZTA0ZTU2N2M4MmQ4ZmVmNTJiOGE1M2ExYg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D0c9c4089d07db0ef60ab2221025a9cec)