rfc:ast_based_parsing_compilation_process

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
rfc:ast_based_parsing_compilation_process [2013/08/24 19:13]
nikic add ML discussion
rfc:ast_based_parsing_compilation_process [2014/08/18 16:45]
nikic
Line 2: Line 2:
   * Date: 2012-09-04   * Date: 2012-09-04
   * Author: Nikita Popov <​nikic@php.net>​   * Author: Nikita Popov <​nikic@php.net>​
-  * Status: ​Under Discussion+  * Status: ​Obsolete
   * [[http://​markmail.org/​message/​trt5oz5uioxe3fdv|Mailing list discussion]]   * [[http://​markmail.org/​message/​trt5oz5uioxe3fdv|Mailing list discussion]]
 +  * Superseded by: [[rfc:​abstract_syntax_tree|Abstract Syntax Tree RFC]]
  
 ===== Introduction ===== ===== Introduction =====
 +
 +**Note: This RFC has been superseded by another [[rfc:​abstract_syntax_tree|Abstract Syntax Tree RFC]].**
  
 Currently PHP uses a single-pass compilation process, i.e. the parser directly invokes opcode compilation routines. Most other languages on the other hand use an intermediary structure to separate those two phases: The parser only emits an abstract syntax tree (AST), which is then used by a separate compiler to emit instructions. The use of an AST decouples the two phases and as such allows for greater flexibility and deeper analysis. Currently PHP uses a single-pass compilation process, i.e. the parser directly invokes opcode compilation routines. Most other languages on the other hand use an intermediary structure to separate those two phases: The parser only emits an abstract syntax tree (AST), which is then used by a separate compiler to emit instructions. The use of an AST decouples the two phases and as such allows for greater flexibility and deeper analysis.
rfc/ast_based_parsing_compilation_process.txt · Last modified: 2017/09/22 13:28 (external edit)