Module 02552 (2001)
Syllabus page 2001/2002
06-02552
Principles of Programming Languages
Level 3/H
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
Outline
The course explains the fundamental principles of programming languages, such as environment, closure and continuation. This is done by writing interpreters for simple programming language fragments in Scheme. These interpreters describe in a formal and moreover executable way what a program means. They can also be a stepping stone to more realistic implementations.
Aims
The aims of this module are to:
- motivate and introduce the building blocks from which advanced programming languages are constructed
- explain how these can be implemented in principle (while the actual technology is dealt with in compiler construction)
Learning Outcomes
| On successful completion of this module, the student should be able to: | Assessed by: | |
| 1 | recognise and appreciate fundamental concepts in programming languages | Examination |
| 2 | write a simple interpreter for a programming language fragment | Examination |
| 3 | explain the meaning and behaviour of programs in a precise and rigorous way | Examination |
| 4 | program in a language of the Lisp family like Scheme | Examination |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
None
Co-requisites:
None; but there are some connections to Models of Computation and Compilers and Languages.
Teaching
Teaching Methods:
2 hrs lectures per week
Contact Hours:
Assessment
- Supplementary (where allowed): As the sessional assessment
- 2 hr examination (100%).
Recommended Books
| Title | Author(s) | Publisher, Date |
| Essentials of Programming Languages (2nd edition) | Friedman, D P, Wand, M & Haynes, C T | 2001 |
| Structure and Interpretation of Computer Programs (2nd edition) | Abelson, H & Sussman, G | 1997 |
Detailed Syllabus
-
Scheme basics
- Expressions in Scheme: car, cdr, cons, list, if
- Procedures and lambda
- Inductive data
- Data abstraction
- Environment-passing interpreters
- Simple expressions
- Conditionals
- Local binding
- Procedures and closures
- Recursion
- Assignement
- Types
- Objects and classes
- Introduction to continuations and jumps
- Continuation-passing interpreter
- Continuations and stacks
- Revision
Last updated: 26 September 2001
Source file: /internal/modules/COMSCI/2001/xml/02552.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus