Module 02552 (2007)

Syllabus page 2007/2008

06-02552
Principles of Programming Languages

Level 3/H

Uday Reddy:5
Unknown/Left:5
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

Module Web Page


Outline

The module explains some fundamental principles of programming languages, such as stack, environment, store and type. We do this for a toy language called "call-by-push-value", in which we represent various familiar programming idioms. We see how the meaning of language features can be described precisely using "abstract machines".


Aims

The aims of this module are to:

  • motivate and introduce some building blocks from which advanced programming languages can be constructed
  • describe the meaning of these by saying how they can be implemented in principle
  • use these to explicate Java-like idioms such as objects and classes
  • use a machine to clarify notions such as "the stack", "the environment", "the store" that students may have met informally
  • explain how we check the type of a program

Learning Outcomes

On successful completion of this module, the student should be able to: Assessed by:
1recognize and appreciate fundamental concepts in programming languagesExamination and continuous assessment
2write and understand simple programs using fine-grained primitives Examination and continuous assessment
3write operational semantics for a small programming languageExamination and continuous assessment
4 explain the meaning and behaviour of programs in a precise and rigorous way Examination and continuous assessment
5 recognize and derive types 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

  • Sessional: 1.5 hr examination (80%) and continuous assessment (20%).
  • Supplementary (where allowed): By examination only.

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

Not applicable

Last updated: 28 Jan 2008

Source file: /internal/modules/COMSCI/2007/xml/02552.xml

Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus