Programming Language Theory — Concepts Across Languages
Status: Active Last Updated: 2026-09-15 Category: Programming Language Theory Prerequisites: Basic programming concepts (see kb/basics/) Tags: language-theory, compilers, type-systems, paradigms, memory-models Estimated Time: 6-8 hours (Self-paced)
Summary
A language-agnostic study of programming language concepts: type systems, memory models, execution models, concurrency primitives, and metaprogramming. This section bridges the concrete syntax taught in language-specific lessons and the abstract theory that lets you reason about any language on first encounter.
What You'll Learn (Core Competencies)
- Classify type systems: static vs dynamic, strong vs weak, nominal vs structural
- Explain the compilation pipeline: source, lexer, parser, IR, optimizer, codegen
- Compare memory models: garbage-collected, manual, ownership-based, arena allocation
- Analyze concurrency primitives: threads, coroutines, actors, CSP channels, async/await
- Evaluate metaprogramming mechanisms: macros, code generation, runtime reflection
Table of Contents
- Type Systems
- Compilation and Execution Models
- Memory Models
- Concurrency Primitives
- Metaprogramming Mechanisms
- Language Comparison Matrix
- Next Steps
Type Systems
(Placeholder — pending hydration)
Compilation and Execution Models
(Placeholder — pending hydration)
Memory Models
(Placeholder — pending hydration)
Concurrency Primitives
(Placeholder — pending hydration)
Metaprogramming Mechanisms
(Placeholder — pending hydration)
Language Comparison Matrix
(Placeholder — pending hydration)
Next Steps
- TypeScript Basics — apply type system theory to a concrete typed language
- Rust Basics — see ownership-based memory safety in practice
- Go Basics — compare CSP channels against the actor model and shared memory
- Python Basics — explore a garbage-collected, dynamically typed language
Change Log
| Date | Change |
|---|---|
| 2026-09-15 | Created programming-language category with stub outline |