Useful Links
Computer Science
Programming
Programming Language Theory
1. Introduction to Programming Language Theory
2. Mathematical Foundations
3. Lambda Calculus
4. Syntax and Parsing
5. Formal Semantics
6. Type Systems
7. Programming Language Features
8. Implementation Strategies
9. Advanced Topics
Programming Language Features
Imperative Programming Constructs
Variables and Assignment
Mutable State
Assignment Semantics
Aliasing
Control Flow
Conditional Statements
If-Then-Else
Switch Statements
Guard Conditions
Iteration
While Loops
For Loops
Loop Invariants
Jumps and Labels
Goto Statements
Break and Continue
Scoping Rules
Lexical Scoping
Static Binding
Nested Scopes
Dynamic Scoping
Dynamic Binding
Scope Chains
Functional Programming Features
Higher-Order Functions
Functions as Values
Function Composition
Currying and Partial Application
Immutability
Immutable Data Structures
Referential Transparency
Pure Functions
Closures
Environment Capture
Lexical Closures
Closure Conversion
Pattern Matching
Pattern Syntax
Match Expressions
Exhaustiveness Checking
Guard Patterns
Algebraic Data Types
Sum Types
Product Types
Recursive Data Types
Object-Oriented Features
Objects and Classes
Object Identity
Encapsulation
Information Hiding
Inheritance
Single Inheritance
Multiple Inheritance
Method Resolution
Polymorphism
Dynamic Dispatch
Method Overriding
Virtual Methods
Formal Models
Object Calculus
Featherweight Java
Concurrency Constructs
Shared Memory Models
Threads and Locks
Mutual Exclusion
Deadlock Prevention
Race Conditions
Message Passing Models
Actor Model
Channel Communication
Synchronous vs Asynchronous
Process Calculi
CCS
CSP
Pi-Calculus
Previous
6. Type Systems
Go to top
Next
8. Implementation Strategies