Skip to content
scrambled
Programming Language Theory Book

Programming languages: application and interpretation

Children Date2012 DescriptionAn accessible introduction to programming language design through implementation. Builds interpreters from scratch, covering closures, objects, mutation, and types using the SMoL (Standard Model of Languages) framework. JourneyProgramming Language Theory Tags
  • interpreters
  • language design
  • programming languages
  • closures
Urlhttps://www.plai.org/

Why study programming languages? ​

Force precise thinking. Prove what code can and can't express. Understand why companies create languages for competitive edge.

Core learning framework ​

SMoL - Standard Model of Languages ​

The shared DNA of Java, Python, JavaScript, Ruby, etc:

Feature What it means
Automatic memory No manual allocation
Eager evaluation Compute arguments first
First-class functions Pass functions like data
Mutable state Variables can change

Key insight: Think in features, not paradigms (OOP vs functional is outdated).

SImPl - Standard Implementation Plan ​

Parse -> Syntax tree -> Recursive processing

Same pattern powers interpreters, compilers, and type-checkers.

Mystery languages ​

Same syntax, different behaviors -> learn by contrasting how features vary.

Tools ​

Tool Purpose
SMoL tutor Automated practice
Stacker Visualize program execution
Racket #lang Build custom languages

Resources: cs.brown.edu/courses/csci1730/