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. Journey Tags
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/