Skip to content

Latest commit

 

History

History
16 lines (11 loc) · 1.19 KB

crafting-interpreters.md

File metadata and controls

16 lines (11 loc) · 1.19 KB

Chapter 1

  • You can implement a compiler in any language, including the same language it compiles, a process called “self-hosting”.
  • You can’t compile it using itself yet, but if you have another compiler for your language written in some other language, you use that one to compile your compiler once.
    • Now you can use the compiled version of your own compiler to compile future versions of itself and you can discard the original one compiled from the other compiler.
    • This is called “bootstrapping” from the image of pulling yourself up by your own bootstraps.

  • A parser takes the flat sequence of tokens and builds a tree structure that mirrors the nested nature of the grammar.
    • These trees have a couple of different names — “parse tree” or “abstract syntax tree” — depending on how close to the bare syntactic structure of the source language they are.
      • In practice, language hackers usually call them “syntax trees”, “ASTs”, or often just “trees”.