DCU Home | Our Courses | Loop | Registry | Library | Search DCU
<< Back to Module List

Latest Module Specifications

Current Academic Year 2025 - 2026

Module Title Compiler Construction
Module Code CSC1098 (ITS: CA4003)
Faculty Computing School Engineering & Computing
NFQ level 8 Credit Rating 7.5
Description

This module aims to: • give students a comprehensive understanding of the techniques used in compilers; • give an overview of the phases of a compiler; • study lexical analysis, syntax analysis and semantic analysis in detail; • give an overview of the run-time environments used to support the compilation process; and • study intermediate code generation, optimization techniques, object code generation and register allocation in detail.

Learning Outcomes

1. Explain the function of the different phases of a compiler.
2. Apply the techniques used in lexical analysis.
3. Develop a lexical analyser.
4. Use algorithms for top-down and bottom-up parsing.
5. Develop a parser.
6. Apply the techniques used in semantic analysis.
7. Describe the different run-time environments used in the back-end of a compiler.
8. Apply techniques for intermediate code generation.
9. Use different techniques for the optimization of intermediate code.
10. Apply techniques for the generation of object coed from intermediate code.
11. Perform register allocation for object code.
12. Develop the back-end of a compiler.


WorkloadFull time hours per semester
TypeHoursDescription
Lecture36Lectures
Assignment Completion30Assignments
Independent Study121Independent Study
Total Workload: 187
Section Breakdown
CRN10600Part of TermSemester 1
Coursework0%Examination Weight0%
Grade Scale40PASSPass Both ElementsY
Resit CategoryRC1Best MarkN
Module Co-ordinatorDavid SinclairModule Teacher
Assessment Breakdown
TypeDescription% of totalAssessment Date
AssignmentCompiler Front-end: Lexical and Syntax Analysis.15%Week 8
AssignmentCompiler Back-end: Semantic Analysis and generating intermediate code15%Sem 1 End
Formal ExaminationEnd-of-Semester Final Examination70%End-of-Semester
Reassessment Requirement Type
Resit arrangements are explained by the following categories;
RC1: A resit is available for both* components of the module.
RC2: No resit is available for a 100% coursework module.
RC3: No resit is available for the coursework component where there is a coursework and summative examination element.

* ‘Both’ is used in the context of the module having a coursework/summative examination split; where the module is 100% coursework, there will also be a resit of the assessment

Pre-requisite None
Co-requisite None
Compatibles None
Incompatibles None

All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml

Indicative Content and Learning Activities

Structure of a compiler.

Lexical Analysis.

Syntax Analysis
Top-down and bottom-up parsing.

Semantic Analysis
Abstract syntax tree and the visitor pattern.

Intermediate code generation

Intermediate code optimisation

Object code generation

Register allocation

Indicative Reading List

Books:
  • A.W. Appel: 2002, Modern Compiler Implementation in Java, 2nd, Cambridge University Press, 0-521-82060-X
  • • A.V.Aho, M.S. Lam, R. Sethi and J.D. Ullman: 2007, Compilers: Principles, Techniques and Tools, 2nd, Person, 978-0-321-49169-5
  • Tom Copeland: 2007, Generating Parsers with JavaCC, 2nd, Centennial Books, 0-9762214-3-8


Articles:
None
Other Resources

None

<< Back to Module List View 2024/25 Module Record for CA4003