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
Previous revision
rfc:ast_based_parsing_compilation_process [2013/01/19 13:35]
nikic
rfc:ast_based_parsing_compilation_process [2017/09/22 13:28] (current)
Line 1: Line 1:
-====== Request for Comments: Moving to an AST-based parsing/compilation process ======+====== Request for Comments: Moving to an AST-based parsing/compilation process (obsolete) ======
   * 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]] 
 +  * 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.1358602507.txt.gz · Last modified: 2017/09/22 13:28 (external edit)