Skip to main content

Unit information: Language Engineering in 2015/16

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Language Engineering
Unit code COMS22201
Credit points 20
Level of study I/5
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Dr. Steve Gregory
Open unit status Not open
Pre-requisites

Programming and Algorithms I and II, COMS12200 Introduction to Computer Architecture

Co-requisites

none

School/department Department of Computer Science
Faculty Faculty of Engineering

Description

The unit seeks to provide an introduction to the specification of programming languages and the design of compilers.

It aims to give an overview of the entire language engineering process, from the syntax and semantics of programs to compilation and run-time systems.

The use of tools will be favoured where appropriate, and theoretical topics will be introduced as needed to support this approach.

Intended learning outcomes

At the end of this unit, a student will be able to:

  1. Understand denotational, axiomatic, operational styles of semantics
  2. Formally prove the correctness of simple programs
  3. Parse source programs and generate low-level code from them
  4. Carry out analyses and optimization of programs
  5. Use tools to generate parsers and verify programs
  6. Write a complete but simple compiler

Teaching details

2 lectures per week supported by a combination of laboratory and problem classes.

Assessment Details

50% Coursework - consisting of two assignments assessing both theoretical and practical elements of the unit content, and involving a combination of software development and report writing - and 50% Exam

Reading and References

H. Nielson and F. Nielson. "Semantics with applications: a formal introduction". A. Appel. "Modern compiler implementation in Java".

Feedback