UP | HOME

Wiki Overview — Interpreters: PLAI, Tolk, Advprog

Table of Contents

Cluster navigation hub. Read this before diving into any topic. For the full page listing, see index.

What This Wiki Is

This wiki covers the theory and practice of writing interpreters for programming languages, as taught in the Advanced Programming (Advprog) course and grounded in the textbook Programming Languages: Application and Interpretation (PLAI, 2nd ed.) by Shriram Krishnamurthi. The implementation language is Common Lisp, using the tolk library. Currently: 7 sources, ~20 pages, 4 clusters.

Cluster Map

interpreter-architecture  ← core theory: AST, parse, interpret, semantics
       │
       ├── tolk-implementation  ← CL realisation of the theory
       │
       ├── plai-book            ← source text (chs. 1-3 so far)
       │
       └── advprog-course       ← classroom application

Cluster: interpreter-architecture

Enter at: Interpreter Architecture

The central cluster. Covers the design of the parse→interpret pipeline, abstract syntax trees, the role of semantics, and how meaning is assigned to language constructs. All other clusters connect to this one.

Key entry points:

Cluster: tolk-implementation

Enter at: Tolk

The Common Lisp realisation of PLAI's interpreter patterns. Uses CLOS for AST nodes, trivia for pattern matching, metabang-bind for slot binding, and fiveam for tests. The arithmetic interpreter (tolk/arith) is the first language implemented.

Key entry points:

Cluster: plai-book

Enter at: PLAI

Shriram Krishnamurthi's textbook. Chapters 1-3 are ingested. The book uses plai-typed (a typed Racket dialect); tolk/advprog uses Common Lisp instead.

Cluster: advprog-course

Enter at: Advprog

The Advanced Programming course at AUC. Interpreter material begins with the 2026-04-20 class. Follows PLAI loosely; uses Common Lisp throughout.