Introduction to Programming Languages
Jump to navigation
Jump to search
Table of contents[edit | edit source]
Introduction to Programming Languages[edit | edit source]
Syntax[edit | edit source]
Grammars in Practice[edit | edit source]
- Logic Grammars
- Syntax Directed Interpretation
- Syntax Directed Translation
- Syntax Directed Type Checking
- A recipe for writing a reusable grammar
Execution Environments[edit | edit source]
Functional Programming in Haskell[edit | edit source]
Pattern Matching[edit | edit source]
Types[edit | edit source]
Typing Disciplines[edit | edit source]
- Dynamically vs Statically Typed Languages
- Nominal vs Structural Typing Equivalence
- Safe vs Unsafe Typing
- Type Inference vs Type Annotations
Polymorphism[edit | edit source]
- What is Polymorphism
- Ad-Hoc Polymorphism
- Universal Polymorphism
- Overloading
- Coercion
- Parametric Polymorphism
- Subtype Polymorphism
The Lambda Calculus[edit | edit source]
High-Order Functions[edit | edit source]
- Definition and Examples
- Closures
- Partial Application
- Noticeable High-Order Functions
- Template Oriented Programming