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:
-
make effective use of compilers and other language
processing software;
-
apply the techniques and algorithms used in compilation
to other areas of software engineering;
-
understand the need for implementation independent
semantics of programming languages;
-
provide semantic interpretation for simple programming
languages.
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
Nigel Hardy Departmental Advisor
nwh@aber.ac.uk
Dept of Computer Science, UW Aberystwyth (disclaimer)