Introduction to Programming Languages
Appearance
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
Scope
[edit | edit source]Functional Data Structures
[edit | edit source]Memory Allocation
[edit | edit source]Imperative Programming in Python
[edit | edit source]Memory Management
[edit | edit source]Abstract Data Types
[edit | edit source]Object-Oriented Programming
[edit | edit source]Exceptions
[edit | edit source]- Exceptions and Error Handling
- Throwable Classes
- Catching Exceptions
- Throwing Exceptions
- Checked Exceptions
- Error Handling
- Finally