UsefulLinks
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
3.
Lambda Calculus
3.1.
Untyped Lambda Calculus
3.1.1.
Basic Syntax
3.1.1.1.
Variables
3.1.1.2.
Abstraction
3.1.1.3.
Application
3.1.1.4.
Parentheses and Precedence
3.1.2.
Free and Bound Variables
3.1.2.1.
Variable Binding
3.1.2.2.
Alpha-Equivalence
3.1.2.3.
Capture-Avoiding Substitution
3.1.3.
Reduction Rules
3.1.3.1.
Beta-Reduction
3.1.3.2.
Alpha-Conversion
3.1.3.3.
Eta-Conversion
3.1.3.4.
Normal Forms
3.1.3.5.
Confluence
3.1.4.
Evaluation Strategies
3.1.4.1.
Call-by-Name
3.1.4.2.
Call-by-Value
3.1.4.3.
Call-by-Need
3.1.5.
Expressiveness
3.1.5.1.
Church Encodings
3.1.5.1.1.
Boolean Values
3.1.5.1.2.
Natural Numbers
3.1.5.1.3.
Arithmetic Operations
3.1.5.1.4.
Conditional Expressions
3.1.5.2.
Data Structures
3.1.5.2.1.
Pairs
3.1.5.2.2.
Lists
3.1.5.2.3.
Trees
3.1.5.3.
Recursion
3.1.5.3.1.
Fixed-Point Combinators
3.1.5.3.2.
Y Combinator
3.1.5.3.3.
Recursive Function Definitions
Previous
2. Mathematical Foundations
Go to top
Next
4. Syntax and Parsing