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
Type Systems
Foundations of Typing
Purpose of Type Systems
Error Prevention
Program Documentation
Optimization Enablement
Abstraction Support
Type Safety
Progress Property
Preservation Property
Type Soundness
Basic Type Theory
Type Judgments
Typing Relations
Typing Rules
Derivation Trees
Type Checking
Algorithmic Type Checking
Type Checking vs Type Inference
Type Environments
Variable Typing
Environment Extension
Simply Typed Lambda Calculus
Type Syntax
Base Types
Function Types
Typing Rules
Variable Rule
Abstraction Rule
Application Rule
Properties
Subject Reduction
Strong Normalization
Decidability
Type System Extensions
Product Types
Pair Types
Record Types
Projection Operations
Sum Types
Variant Types
Tagged Unions
Case Analysis
Recursive Types
Inductive Types
Coinductive Types
Iso-Recursive vs Equi-Recursive
Subtyping
Subtype Relations
Subsumption Rule
Width and Depth Subtyping
Polymorphism
Parametric Polymorphism
Type Variables
Universal Quantification
System F
Type Instantiation
Type Inference
Hindley-Milner System
Unification Algorithm
Principal Types
Let-Polymorphism
Ad-hoc Polymorphism
Overloading
Type Classes
Instance Resolution
Advanced Type Features
Dependent Types
Types Depending on Terms
Pi Types
Sigma Types
Linear Types
Resource Tracking
Linear Logic
Affine Types
Effect Systems
Effect Annotations
Effect Inference
Monadic Effects
Previous
5. Formal Semantics
Go to top
Next
7. Programming Language Features