[
ANU
] [
FEIT
] [
DCS
] [
COMP3610
] [Lectures] [
Tutorials
] [
Assignments
] [
Haskell
] [
Lambda Calculus
] [
Flex & Bison
]
COMP3610: Principles of Programming Languages
Lectures
This section will be updated as lectures are given.
Introduction
Introductory Lecture
Programming Paradigms, C
Haskell
Monads
More Monads
Lazy Evaluation
Functional Pearls
The Countdown problem
The original paper
Haskel source, first version
Haskell source, second version
Monadic Parsing
Packrat Parsing
Permutation Phases
Category Theory
These are from an earlier course in Haskell, and are provided for reference.
Data Structures
Type System
Higher order functions
Folding
IO
Lambda Calculus
The basic lambda calculus
Adding a type system
For reference, consider
this
Top Down Parsers
Top down parsing
We have an example parser/interpreter, for a simple imperative language:
The abstract syntax of the language
A lexical analyser
The recursive descent parser
The language interpreter
The main file for compliation
We also have a couple of example programs:
1
2
Fixpoint Theory of Recursive Function Definitions
Notes
Bottom-up Parsers
Notes
Semantics of Programming Languages
Notes
Sections 3.3 and 3.5 will not be examined
Unifying Examples
This section will not be examined.
Abstract interpretation
Notes: [
pdf
]
Scripts: [
Sign1.lhs
] [
Sign2.lhs
] [
Sign3.lhs
]
Strictness analysis
Notes: [
pdf
]
Scripts: [
Fun parser, interpreter and analyser
]
Exam Review
This section WILL be examined.
Notes
[
ANU
] [
FEIT
] [
DCS
] [
COMP3610
] [Lectures] [
Tutorials
] [
Assignments
] [
Haskell
] [
Lambda Calculus
] [
Flex & Bison
]
This page is controlled and maintained by
michael.stevens@anu.edu.au
Last modified: Wed Oct 17 16:06:44 EST 2007