Programming Languages
Syntax and Parsing
Semantics and Transformations
Functions
Mutation and State
Parallel and Concurrent
Type Checking
Objects
Lazy Evaluation