scrambled
Book

Programming languages application and interpretation

Modified just now
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:

FeatureWhat it means
Automatic memoryNo manual allocation
Eager evaluationCompute arguments first
First-class functionsPass functions like data
Mutable stateVariables 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

ToolPurpose
SMoL tutorAutomated practice
StackerVisualize program execution
Racket #langBuild custom languages

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