Module 02552 (2002)

Syllabus page 2002/2003

06-02552
Principles of Programming Languages

Level 3/H

hxt
10 credits in Semester 2

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

24


Assessment

  • Supplementary (where allowed): As the sessional assessment
  • 2 hr examination (80%) and continuous assessment (20%).

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. Introduction to continuations and jumps
  7. Continuation-passing interpreter
    • Continuations and stacks
  8. 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