Module Texts
Appel, A.W. Modern Compiler Implementation in Java, Cambridge University Press, 2000, ISBN: 978-81-7596-072-5
Linz, P., An Introduction to Formal Languages and Automata, 3rd revised edition, Jones and Bartlett Publishers, 2011, ISBN: 978-1449615529
Watt, D. A. & D. F. Brown, Programming Language Processors in Java, Prentice Hall, 2000, ISBN: 0-13-025786-9
Module Special Admissions Requirements
Must be part of the programme of study agreed with EMA Ales
Module Resources
Lab with Java environment
Module Learning Strategies
A combination of lectures and practical/tutorial work, supported by independent study. The class contact hours will be intensive and may fit in to a variety of timescales from 1 week to 1 month.
In total:
(1:n) 16; (1:20) 14
Module Additional Assessment Details
Portfolio of class exercises 100%
Students will submit a selection of the class exercises for final assessment. Word length of portfolio will not exceed 3000 words.
Module Indicative Content
History and evolution of language processing
Formal language theory:
Regular languages and finite state automata
Context free languages and push down automata
LL(k), LR(0) and LR(1) grammars
BNF and Syntax diagrams
Overview of language processing - compilers, interpreters, etc.
Phases of compilation.
Lexical analysis. Tokens.
Syntax analysis (parsing) - bottom-up and bottom-down. Parse tree.
Semantic analysis and symbol tables, scope and type checking.
Error handling.
Run-time organisation.
Simple code generation. Intermediate code. Virtual machines.
Specific issues in compilation of object oriented languages.
Introduction to compiler generator tools e.g. Lex, Yacc, ANTLR.
Overview of interpretation and differences between compilation and interpretation.