Date:: March 4th, 2025

Synopsis

We have talked a lot at this point how to manipulate abstract syntax trees to interpret a computer program. But how do we generate those abstract syntax trees in the first place? We start off with a mathematical description of a language --- or more accurately, a mathematical description of the valid sentences of a language --- and use that to build a tool to build a parser.

This “mathematical description” is called a grammar, and there are a lot of things you will need to understand about them to make them useful to you.

Videos

Handouts

Further Reading