Languages and Compilers

The details
Computer Science and Electronic Engineering (School of)
Colchester Campus
Undergraduate: Level 6
Monday 13 January 2020
Friday 20 March 2020
07 May 2019


Requisites for this module



Key module for


Module description

This module will introduce students to formal languages and compilers. It will demonstrate the use of BNF notation, finite state automata and regexps, basic programming language statements, and ask students to implement a compiler.

Module aims

The aim of this module is to introduce the students to formal languages and compilers, understand formal languages, use BNF notation, use finite state automata and regexps, basic programming language statements, and implement a compiler.

Module learning outcomes

After completing this module, students will be expected to be able to:

1. Demonstrate an understanding of formal languages
2. Describe formal languages using BNF notation
3. Explain the link between finite state automata and regular expressions
4. Describe the syntax and semantics of basic programming language elements
5. Demonstrate an understanding of the structure of compilers and their main components
6. Implement key parts of a compiler for a simple language

Module information

Outline Syllabus

-Introduction to formal languages
-Regular and context-free grammars
-Backus-Naur Form notation (BNF)
-Finite state automata
-Introduction to compilers
-Syntax and semantics of basic programming languages elements
-Lexical analysis
-Static analysis
-Code Generation

Learning and teaching methods

Lectures and Laboratories


  • Parr, Terence. (2013) Definitive ANTLR 4 Reference, Raleigh: The Pragmatic Programmers.
  • Aho, A. V.; Lam, Monica S.; Sethi, R.; Ullman, Jeffrey D. (2013) Compilers: Pearson New International Edition, Harlow: Pearson Education Limited.

The above list is indicative of the essential reading for the course. The library makes provision for all reading list items, with digital provision where possible, and these resources are shared between students. Further reading can be obtained from this module's reading list.

Assessment items, weightings and deadlines

Coursework / exam Description Deadline Weighting
Coursework Assignment 1: Expression Analyser 25/02/2020 37.5%
Coursework Assignment 2: Small Compiler 10/03/2020 62.50%
Exam 120 minutes during Summer (Main Period) (Main)
Exam 120 minutes during Summer (Main Period) (Main)

Overall assessment

Coursework Exam
40% 60%


Coursework Exam
40% 60%
Module supervisor and teaching staff
Dr Chris Fox
School office, email: csee-schooloffice(non-Essex users should add @essex.ac.uk to create full e-mail address), Telephone 01206 872770F



External examiner

No external examiner information available for this module.
Available via Moodle
Of 44 hours, 22 (50%) hours available to students:
22 hours not recorded due to service coverage or fault;
0 hours not recorded due to opt-out by lecturer(s).


Further information

Disclaimer: The University makes every effort to ensure that this information on its Module Directory is accurate and up-to-date. Exceptionally it can be necessary to make changes, for example to programmes, modules, facilities or fees. Examples of such reasons might include a change of law or regulatory requirements, industrial action, lack of demand, departure of key personnel, change in government policy, or withdrawal/reduction of funding. Changes to modules may for example consist of variations to the content and method of delivery or assessment of modules and other services, to discontinue modules and other services and to merge or combine modules. The University will endeavour to keep such changes to a minimum, and will also keep students informed appropriately by updating our programme specifications and module directory.

The full Procedures, Rules and Regulations of the University governing how it operates are set out in the Charter, Statutes and Ordinances and in the University Regulations, Policy and Procedures.