Skip to content

Latest commit

 

History

History
18 lines (13 loc) · 982 Bytes

README.md

File metadata and controls

18 lines (13 loc) · 982 Bytes

Clox

A C version of Lox Interpreter.

Java interpreter, jlox, when run any interesting Lox programs in jlox, you'll discover it's achingly slow. The style of interpretation it uses - walking the AST directly - is good enough for some real-world uses, but leaves a lot to be desired for a general-purpose scripting language.

Also, we implicitly rely on runtime features of the JVM itself. We take for granted that things like instanceof in Java work somehow. And we never for a second worry about memory management because the JVM's garbage collector takes care of it for us.

When we were focused on high-level concepts, it was fine to gloss over those. But now that we know our way around an interpreter, it's time to dig down to those lower layers and build our own virtual machine from scratch using nothing more than the C standard library...

  1. Chunks of Bytecode
  2. A Virtual Machine