Topic domain

Programming Languages

Semantics, type systems, and the design space of notation.

Articles
80
Clusters
8
Foundational
24
Intermediate
32
Advanced
24

Syntax, ergonomics, and feature interactions.

  1. Automatic Semicolon Insertion and Restricted Productions
  2. The Dangling Else and How Grammars Resolve Ambiguity
  3. Operator Precedence Tables and Why They Are a Design Artifact
  4. Evaluation Order, Sequencing Points, and Unspecified Behaviour
  5. Short-Circuit Evaluation as a Language Guarantee
  6. Pattern Matching and the Exhaustiveness Check
All 10 in this cluster →

Inference, subtyping, polymorphism, and effects.

  1. Unification and the Hindley–Milner Inference Algorithm
  2. Let-Polymorphism and the Value Restriction
  3. Structural Subtyping and the Variance Lattice
  4. Row Polymorphism for Extensible Records
  5. Type Classes as Dictionary Passing and the Coherence Problem
  6. Erasure and Reification of Generic Types
All 10 in this cluster →

Purity, higher-order abstraction, and recursion schemes.

  1. Referential Transparency and the Substitution Test
  2. Call-by-Need Evaluation and In-Place Thunk Update
  3. Fold as the Universal List Eliminator
  4. Tail Position, Accumulators, and Continuation-Passing Style
  5. Fold Fusion and the Elimination of Intermediate Lists
  6. Catamorphisms and Anamorphisms over Recursive Functors
All 10 in this cluster →

Dispatch, encapsulation, and linking units.

  1. Vtable Layout and the Cost of a Virtual Call
  2. Prototype Chains and Delegation-Based Dispatch
  3. What a Private Field Actually Hides
  4. The Fragile Base Class Problem in Compiled Hierarchies
  5. Inline Caches and Polymorphic Call Sites
  6. Method Resolution Order in Multiple Inheritance
All 10 in this cluster →

Actors, CSP, futures, and structured concurrency.

  1. Mailbox Semantics and Ordering Guarantees in the Actor Model
  2. Rendezvous and Buffering in CSP-Style Channels
  3. Futures as Write-Once Cells: Polling, Waking, and Cancellation
  4. Happens-Before, Data Races, and the Memory Model Contract
  5. Multiplexing Green Threads onto Kernel Threads
  6. Structured Concurrency and the Task Scope
All 10 in this cluster →

Lifetimes, borrow checking, and manual reclamation.

  1. Stack Frames and the Lifetime of an Automatic Variable
  2. Move Semantics and the Affine Type Discipline
  3. malloc, free, and the Conventions That Replace a Type System
  4. Destructors, Drop Order, and What Unwinding Actually Runs
  5. Reference Counting and the Cycle It Cannot Break
  6. Arena Allocation and Ownership by Convention
All 10 in this cluster →

Macros, reflection, and compile-time evaluation.

  1. Token Substitution and Tree Substitution in Macro Expansion
  2. Macro Hygiene and Identifier Capture
  3. Quasiquotation, Unquotation, and Nesting Depth
  4. Compile-Time Function Evaluation and Its Limits
  5. Runtime Reflection: Metadata Layout and Dispatch Cost
  6. Procedural Macros and the Token Stream Contract
All 10 in this cluster →

How representative languages execute their semantics.

  1. Tree-Walking Interpretation and the Cost of Re-Deciding at Every Node
  2. Stack Bytecode: Fixed Stack Effects and the Dispatch Loop
  3. Register Bytecode and Windowed Register Allocation in Lua
  4. Value Representation: Tagged Pointers and NaN Boxing
  5. Closure Conversion: Flat Closures, Displays, and Boxed Upvalues
  6. Hidden Classes and Inline Caches in Dynamic Object Models
All 10 in this cluster →

All Programming Languages articles