Computer Science, Prifysgol Cymru Aberystwyth University of Wales


C342(h)* - Topics in Programming Languages


Brief Description

This module addresses the basic ideas underlying compilers and other language processing systems. It then provides an opportunity for studying the formal description of programming language semantics.

Aims, Objectives, Syllabus, Booklist


Further Details

Number of lectures
22
Number of seminars/tutorials
4
Number of practicals
0
Coordinator
Fred Long
Other staff involved
Not yet known
Pre-requisites
C210
Co-requisites
None
Incompatibilities
None
Assessment
Assessed coursework - 20%
Written exam - 80%
Timing
This half module is offered only in Term 1

Aims

This module aims to familiarise students with the concepts required for specifying and implementing programming languages.

Objectives

On successful completion of this course students should be able to:

Syllabus

Overview of Compilation Systems - 10 Lectures
The structure of a typical compiler and the functions of a linker. Formal specification of the lexis and syntax of a programming language. Lexical and syntactic analysis of a language and tools for generating analysers. The idea of an intermediate language. Code generation. Local and global optimisation. Structure of assemblers and linkers.
Programming Language Semantics - 12 Lectures
Concepts of abstract syntax and denotational semantics for computer languages. Syntactic and semantic domains. The concept of state and evaluation functions. Summary of the lambda calculus notation. The semantics of a simple block structured language. Side effects and procedures. Continuation semantics. Standard semantics. The use of ML to express the functionality of a denotational semantics. The construction of an interpreter, in ML, of a simple block structured language.

Booklist

It is considered essential to purchase the following

Lloyd Allison. A Practical Introduction to Denotational Semantics. Cambridge, 1986.

Students are likely to need ready access to the following

A.V. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.

The following should be consulted for different approaches or for further information

M.J.C. Gordon. The Denotational Description of Programming Languages, An Introduction. Springer-Verlag, 1979.

A. A. Wikström. Functional Programming Using Standard ML. Prentice-Hall, 1987.

Version 2.1

Syllabus Syllabus

Nigel Hardy Departmental Advisor

nwh@aber.ac.uk

Dept of Computer Science, UW Aberystwyth (disclaimer)