pl0/NOTES.md

636 B

PL/0 implementation

Idea: implement a PL/0 compiler and VM from scratch.

https://en.wikipedia.org/wiki/PL/0

Grammer is defined in EBNF.

  • [foo] is optional, so foo must be present 0 or 1 times.
  • {foo} is repeated 0 or more times.

Language

The final top level block is equivalent to main().

Recursive descent parser

A mechanical conversion from the BNF form to code.

  • accept() checks if the next token is the starting one.
  • expect() requires the next token is a certain one.

Other implementations

https://github.com/crcx/PL0-Language-Tools

Components

Tokeniser Parser Generator