Module 02552 (2002)
Syllabus page 2002/2003
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 and continuous assessment |
| 2 | write a simple interpreter for a programming language fragment | Examination and continuous assessment |
| 3 | explain the meaning and behaviour of programs in a precise and rigorous way | Examination and continuous assessment |
| 4 | program in a language of the Lisp family like Scheme | Examination and continuous assessment |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
None
Co-requisites:
None
However there are some connections to 06-05934 (Models of Computation) and
06-02578 (Compilers & Languages).
Teaching
Teaching Methods:
2 hrs lectures per week
Contact Hours:
Assessment
- Supplementary (where allowed): As the sessional assessment
- 2 hr examination (80%) and continuous assessment (20%).
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
- Introduction to continuations and jumps
- Continuation-passing interpreter
- Continuations and stacks
- Revision
Last updated: 12 January 2003
Source file: /internal/modules/COMSCI/2002/xml/02552.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus