Prerequisite Modules
Description
This module introduces the student
to the architecture of a compilers, syntax and semantics analysis,
language grammars, automata and regular expression pattern matching,
and to compiler implementation techniques.
Aims
The aim of this module is to give an
introduction of compiler theory and relevant compiler implementation
techniques.
Learning Outcomes
On successful completion of this
module, the student will be able to:
-
Demonstrate a detailed
understanding of architecture of compiler.
-
Demonstrate a detailed
understanding of Grammar, and Automata.
-
Appreciate the general compiling
techniques and algorithms.
-
Use practical experience in
applying the compiling techniques.
Learning and Teaching Methods
Lectures, self-study, labs,
tutorials, and any combination of discussion, case study,
problem-solving exercises, readings, seminars, and computer-based
learning.
Content
Complier Theory Overview,
Compilers, Translators, Interpreters, Compilation Phases, Lexical,
Syntactic, Semantic, Intermediate Representations, Code Generation,
Optimisation, Language Issues.
Data Structures, Decision
Constructs, Looping Constructs, Procedure calling, Parameter Passing,
Object-Oriented Constructs.
Lexical Analysis, Finite State
Machines, Regular Expressions. Syntax Analysis, Grammars, Chomsky
Hierarchy, Top-Down and Bottom-Up Parsing, Recursive Descent Parsers,
Pushdown Parsers, Attributed Grammars and Syntax Directed Translation.
Compiler Tools, Case Studies and
Applications
Syntax-Directed Editing, Automated Code Generation.
Turing Machines.
Assessment
The methods of assessment to be
used to measure the learning objectives stated above are written
examination and continuous assessment including one or more of
assignment, essay, problem-solving exercise, oral presentation, and
class or lab tests.
-
Continuous Assessment: 30%
-
Examination: 70%
Recommended
Reading
-
Aho, Sethi and Ullman, Compilers:
Principles, Techniques and Tools, Addison-Wesley, 1986. ISBN
0-201-10194-7, (better known as The Dragon Book).
-
Michael L. Scott, Programming
Language Pragmatics, Morgan Kaufmann Publishers, 2000.
-
Andrew W. Appel, Modern Compiler
Implementation in C/Java/ML, Cambridge University Press, New York,
1998.
|
|
For more information contact
Ciarán O'Leary
|