Course syllabus
Compilers and Interpreters, 7.5 credits
Course code: | DT135G | Credits: | 7.5 |
---|---|---|---|
Main field of study: | Computer Science | Progression: | G1F |
Last revised: | 13/03/2020 | ||
Education cycle: | First cycle | Approved by: | Head of school |
Established: | 02/12/2019 | Reading list approved: | 13/03/2020 |
Valid from: | Autumn semester 2020 | Revision: | 1 |
Aims and objectives
General aims for first cycle education
First-cycle courses and study programmes shall develop:
- the ability of students to make independent and critical assessments
- the ability of students to identify, formulate and solve problems autonomously, and
- the preparedness of students to deal with changes in working life.
In addition to knowledge and skills in their field of study, students shall develop the ability to:
- gather and interpret information at a scholarly level
- stay abreast of the development of knowledge, and
- communicate their knowledge to others, including those who lack specialist knowledge in the field.
(Higher Education Act, Chapter 1, Section 8)
Course objectives
The course objective is to give the student:
- an understanding of the basic principles for how a program is analyzed, translated and executed,
- knowledge about the types of interpreters and compilers and their use,
- knowledge about the compiler's phases,
- knowledge about tools that can be used to facilitate the development of compilers and interpreters,
- an understanding about how compilers and interpreters are designed and how they work,
- an understanding about how data and storage is managed during program execution,
- understanding of how to, in practice, build a simple interpreter or compiler for a simple language,
- ability and practical skills needed to construct parts of a compiler, and other programs that use compiler technology, in particular a lexical analyzer and a simple syntactic analyzer, both in standard program code and with special tools, and
- a professional approach to programming, which includes problem analysis, testing and documentation.
Main content of the course
The following topics are covered in the course
- types of translators, such as compilers and preprocessors,
- the design and operation of a compiler,
- lexical analysis (scanning),
- syntactical analysis (parsing), methods for syntax specification,
- type systems and type control,
- internal representation of a program,
- runtime systems,
- memory management, garbage collection,
- code generation and optimization,
- compiling for physical and virtual machines,
- methods for error handling,
- tools to create and generate compilers,
- criteria for language design, and
- the students will build some important parts of a compiler, both in C++ and using various tools.
Teaching methods
Lectures and project assignments with supervision.
Students who have been admitted to and registered on a course have the right to receive tuition and/or supervision for the duration of the time period specified for the particular course to which they were accepted (see, the university's admission regulations (in Swedish)). After that, the right to receive tuition and/or supervision expires.
Examination methods
Theory, 3 credits (Code: A001)
Written examination.
A retake will be scheduled to take place within eleven weeks of the regular examination.
Project, 4.5 credits (Code: A002)
Written and oral prosentations of project assignments. Individually or in groups according to the teacher's instructions.
For students with a documented disability, the university may approve applications for adapted or other forms of examinations.
For further information, see the university's local examination regulations (in Swedish).
Grades
According to the Higher Education Ordinance, Chapter 6, Section 18, a grade is to be awarded on the completion of a course, unless otherwise prescribed by the university. The university may prescribe which grading system shall apply. The grade is to be determined by a teacher specifically appointed by the university (an examiner).
In accordance with university regulations regarding grading systems for first and second-cycle courses (Vice-Chancellor’s decision ORU 2018/00929), one of the following grades shall be used: Fail (U), Pass (G) or Pass with Distinction (VG). For courses that are included in an international Master’s programme (60 or 120 credits) or offered to the university’s incoming exchange students, the grading scale of A-F shall be used. The vice-chancellor, or a person appointed by the vice-chancellor, may decide on exceptions from this provision for a specific course, if there are special grounds.
Grades used on course are Fail (F), Sufficient (E), Satisfactory (D), Good (C), Very Good (B) or Excellent (A).
Theory
Grades used are Fail (U) or Pass (G).
Project
Grades used are Fail (F), Sufficient (E), Satisfactory (D), Good (C), Very Good (B) or Excellent (A).
For further information, see the university's local examination regulations (in Swedish).
Comments on grades
The grade on the course is given the grade from exam A002, given that exam A001 is passed.
Specific entry requirements
Data Structures and Algorithms, 7.5 Credit and Object-Oriented Programming, 7.5 Credits.
For further information, see the university's admission regulations (in Swedish).
Transfer of credits for previous studies
Students who have previously completed higher education or other activities are, in accordance with the Higher Education Ordinance, entitled to have these credited towards the current programme, providing that the previous studies or activities meet certain criteria.
For further information, see the university's local credit transfer regulations (in Swedish).
Other provisions
The course may be given in English.
Reading list and other teaching materials
Required Reading
Aho, Alfred V, Lam, Monica. S, Sethi, Ravi och Ullman, Jeffery D
Compilers - Principles Techniques and Tools (latest edition)
Addison-Vesley