Module 02552 (2001)

Syllabus page 2001/2002

06-02552
Principles of Programming Languages

Level 3/H

hxt
10 credits in Semester 1

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

Home page for this module


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:
1recognise and appreciate fundamental concepts in programming languages Examination
2write a simple interpreter for a programming language fragment Examination
3explain the meaning and behaviour of programs in a precise and rigorous way Examination
4program 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:

24


Assessment

  • Supplementary (where allowed): As the sessional assessment
  • 2 hr examination (100%).

Recommended Books

TitleAuthor(s)Publisher, Date
Essentials of Programming Languages (2nd edition)Friedman, D P, Wand, M & Haynes, C T2001
Structure and Interpretation of Computer Programs (2nd edition)Abelson, H & Sussman, G1997

Detailed Syllabus

  1. Scheme basics
    • Expressions in Scheme: car, cdr, cons, list, if
    • Procedures and lambda
  2. Inductive data
  3. Data abstraction
  4. Environment-passing interpreters
    • Simple expressions
    • Conditionals
    • Local binding
    • Procedures and closures
    • Recursion
    • Assignement
  5. Types
  6. Objects and classes
  7. Introduction to continuations and jumps
  8. Continuation-passing interpreter
    • Continuations and stacks
  9. 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