Course Resources
Cco
Lecture Notes
Lecture notes from IPT/IPT edition 2004. The lecture notes contain useful information but examples and notation are out-of-sync with the CCO slides and library. The lecture notes have not been updated, so keep this in mind when using it.
Slides
See the
CourseSchedule.
Additional reading material for the capita selecta
- Smalltalk
- Required reading:
- Optional (background) reading:
- Systems: Squeak, and others.
- Lambda calculus implementation, SKI combinators, Super combinators
Lab exercises
See the
MiniProjects.
CCO Library
Latest version
Older versions
Reference Implementations
The distribution contains the following tools:
eval-arith | an evaluator for simple arithmetic expressions |
eval-arithbool | an evaluator for arithmetic and boolean expressions |
interp-arith | a complete interpreter for simple arithmetic expressions |
interp-arithbool | a complete interpreter for arithmetic and boolean expressions |
parse-arith | a parser for simple arithmetic expressions |
parse-arithbool | a parser for arithmetic and boolean expressions |
pp-arith | a pretty printer for simple arithmetic expressions |
pp-arithbool | a pretty printer for arithmetic and boolean expressions |
tc-arithbool | a type checker for arithmetic and boolean expressions |
#UUAGReading
Attribute Grammar system (UUAG)
- Utrecht University Attribute Grammar Compiler, installable via
cabal uuagc, and the UUAGC page.
- UUAG tutorials and workshops have been given several times:
Haskell Utrecht Tools
To facilitate the execution of parsers built with the combinators from the HUT Library within the Feedback monad from the CCO library, a small satellite utility module
CCO.Parsing.UU has been made available.
An
interpreter for simple arithmetic expressions implemented using the scanner and the parser combinators from the HUT Library is provided as an illustration of the use of the library.
Alternative parser combinator libraries
Other parser combinator libraries may be used, but they lack wrappers from the CCO library (feel free to add such wrappers and send me the code).
- uu-parsinglib is the newer version of the parser combinators in uulib. It is not (yet) used by the CCO library. The API is almost the same and better documented.
- The parser combinator library from Talen & Compilers could be used as well.
Simple Stack Machine
Download |
Documentation
Samples
lhs2TeX
Sample
lhsexample.lhs which gives
pdf documentation and
Main.hs when compiled as follows:
lhs2TeX --poly lhsexample.lhs > lhsexample.tex
pdflatex lhsexample.tex
lhs2TeX --code lhsexample.lhs > Main.hs
Example exams