Table of Contents
This book is a work in progress!
If you want to know when new chapters are done, join the mailing list:
(I post about once a month. Don’t worry, I won’t spam you.)
I.Welcome
- 1.Introduction
- Design Note: What's in a Name?
- 2.A Map of the Territory
- 3.The Lox Language
- Design Note: Expressions and Statements
II.A Tree-Walk Interpreter
- 4.Scanning
- Design Note: Implicit Semicolons
- 5.Representing Code
- 6.Parsing Expressions
- Design Note: Logic Versus History
- 7.Evaluating Expressions
- Design Note: Static and Dynamic Typing
- 8.Statements and State
- Design Note: Implicit Variable Declaration
- 9.Control Flow
- Design Note: Spoonfuls of Syntactic Sugar
- 10.Functions
- 11.Resolving and Binding
- 12.Classes
- Design Note: Prototypes and Power
- 13.Inheritance
III.A Bytecode Virtual Machine
- 14.Chunks of Bytecode
- Design Note: Test Your Language
- 15.A Virtual Machine
- Design Note: Register-Based Bytecode
- 16.Scanning on Demand
- 17.Compiling Expressions
- Design Note: It's Just Parsing
- 18.Types of Values
- 19.Strings
- Design Note: String Encoding
- 20.Hash Tables
- 21.Global Variables
- 22.Local Variables (COMING SOON)
- 23.Jumping Forward and Back (COMING SOON)
- 24.Calls and Functions (COMING SOON)
- 25.Closures (COMING SOON)
- 26.Garbage Collection (COMING SOON)
- 27.Classes and Instances (COMING SOON)
- 28.Methods and Initializers (COMING SOON)
- 29.Superclasses (COMING SOON)
- 30.Optimization (COMING SOON)