Chapter 4: Turning the Source File into an Abstract Syntax Tree
A compiler is typically divided into two parts: the frontend and the backend. In this chapter, we will implement the frontend of a programming language; that is, the part that deals with the source language. We will learn about the techniques real-world compilers use and apply them to our own programming languages.
We'll begin our journey by defining our programming language's grammar and end it with an abstract syntax tree (AST), which will become the basis for code generation. You can use this approach for every programming language that you would like to implement a compiler for.
In this chapter, you will learn about the following topics:
- Defining a real programming language introduces you to the
tinylang
language, which is a subset of a real programming language, and for which you must implement a compiler frontend. - Creating the project layout, in which you will create the project layout...