Print
Code
IT-CMC1
Version
2.0
Offered by
ICT Engineering
ECTS
5
Prerequisites
Condition for following IT-CMC1 is that you have followed the courses IT-SDJ1, IT-SDJ2, and IT-ADS1, or similar courses at your home institution.
Main purpose
The students should be able to design a simple programming language, and design and implement a compiler for the language.
Knowledge
The students will be able to
- describe the main purposes of a compiler
- explain the differences between syntax and semantics of a programming language
- explain context free grammars
- list examples of common programming language features
Skills
The students will be able to
- construct a context free grammar for a programming language
- define the semantics of a programming language in an informal way
- design the runtime organization for a programming language
Competences
The students will be able to
- design a small, simple programming language
- design and implement a compiler for a small, simple programming language using various design patterns and an object oriented language for implementation
Topics
• compiler architecture
• regular expression
• context free grammars
• lexical analysis
• parsing in general
• recursive descent parsing
• abstract syntax trees
• runtime organization
• code generation
Teaching methods and study activities
The course has 44 classroom lessons. These lessons consist teacher presentations and project guidance. There is a single project for the whole semester. The total workload of the student is expected to be around 140 hours.
Referring to the Study Activity Model, the workload is distributed as follows:
CATEGORY 1
Participation of lecturer and students
Initiated by the lecturer
45 hours - 32%
- Lessons, scheduled
- Project work in class
- Project guidance
- Exam
CATEGORY 2
Participation of students
Initiated by the lecturer
45 hours - 32%
- Exercises
- Project and group work
- Homework
CATEGORY 3
Participation of students
Initiated by students
35 hours - 25 %
- Self-study
- Group work
- Literature search
- Preparation for exam
CATEGORY 4
Participation of lecturer and students
Initiated by students
15 hours - 12 %
Resources
Watt&Brown, Programming Language Processors in Java – Compilers and Interpreters, Prentice Hall, 2000.
Evaluation
Permit criteria for attending examination:
• Hand in of course project
Examination
The exam is an individual 20 minutes oral exam. The student draws a question from the theory and answers it based on the produced course project.
Allowed tools: All
Internal exam.
Grading criteria
Grading is according to the 7-point grading scale.
Additional information
Responsible
Jan Munch Pedersen (JPE)
Valid from
8/1/2019 12:00:00 AM
Course type
Keywords
Compiler Design and Implementation, Programming Language Description, Context-Free Grammars, Syntax Checking, Semantic Checking, Runtime Organization, Code Generation