Goals of this course:
The course is organized in three streams:
- Better understanding of programming languages
- Which concepts are essential?
- Which are ephemeral?
- How can fundamental concepts encode derived ones?
- Better understanding of programming
- Fundamental composition principles
- Language as a means of abstraction
- Interpreters and compilers
- Better understanding of definitions of programming languages
- Which things can/should be formalized
- What techniques are available for formalization
- Overall: Increased competence as a programmer, language
implementor, library and language designer
- Theory: Syntax and Semantics of Programming Languages
- Applications: Core languages which illustrate essential
concepts: Funnel and Oz
- Practice: Programming Examples, Interpreters
Here are the slides to the tutorials on Thursdays:
The exercises sheets from the last tutorials can be found here: