Compilers and Interpreters
This is the home page for the course
DT501A Compilers and Interpreters for MSc in Engineering
(in Swedish: Kompilatorer och interpretatorer för civilingenjörer)
given by Örebro University
in study period 2 (October-January) autumn semester 2022.
These web pages contain lab instructions and some other texts.
There is also a page in
Blackboard,
where news and notifications will be published.
The course is given in Swedish,
but most of the written material is in English.
Quick links:
Weekly plan
|
Lectures
1
2
3
4
5
6
7
8
9
10
11
12
|
Exercises:
1
2
3
4
5
6
7
8
9
10
|
Assignments
0
1
2
3
4
5
6
(7)
General information about the course
News
News are published as announcements ("anslag") in
Blackboard,
and Blackboard will also send them to you as e-mail.
Check that you have a working e-mail address!
Lectures from 2022 on YouTube, in English
The lectures from 2022
have been recorded and collected in the YouTube playlist
Compilers and Interpreters 2022.
These video lectures are in English.
Lectures from 2019 on YouTube, in Swedish
The lectures from 2019
have been recorded and collected in the YouTube playlist
Kompilatorer och interpretatorer 2019.
These video lectures are in Swedish.
Nr | Content | Video |
1 |
Kompilatorer - vad, hur och varför? |
del 1,
del 2
|
2 |
Syntax och grammatiker |
del 1,
del 2
|
3 |
Syntaktisk analys ("parsning"). En mycket enkel kompilator. |
del 1,
del 2
|
4 |
Mer om syntaktisk analys. Bottom-up parsing. Parser-generatorer. |
del 1,
del 2
|
5 |
Yacc och Bison |
del 1,
del 2
|
6 |
Lexikalisk analys ("scanning"). Lex och Flex. Reguljära uttryck. |
del 1,
del 2
|
7 |
Syntax-styrd översättning. Att bygga syntax-träd. |
del 1,
del 2
|
8 |
Run-time-omgivningar. Skräpsamling. |
del 1,
del 2
|
9 |
Att exekvera syntaxträdet. Stackmaskiner. |
del 1,
del 2
|
10 |
Typsystem och typkontroll |
del 1,
del 2
|
11 |
Intermediärkod och optimering |
del 1,
del 2
|
12 |
Forts. optimering; Kodgenerering |
del 1,
del 2
|
Additional material
-
The page with
lectures and course content
contains links to my own lecture notes that I am using,
and to course material that is on the web,
and references to the course book.
-
Lab instructions.
The lab instructions are written for Linux.
If you are more used to Windows and Visual Studio it may be possible, but perhaps not easy, to use that instead.
(There are some very old
Windows-specific instructions from an earlier year.)
-
Att komma igång med Linux i Örebro
("Getting started with Linux in Örebro"),
also available in English, sort of, courtesy of Google Translate
-
Some
texts
about compiler technology.
-
The
source code
to the program in section 2.5 of the older edition of the course book.
-
The
source code
to the very simple compiler in section 2.9 of the older edition of the course book.
-
Old exams, in Swedish unless explicitily stated to be in English:
-
Old exams from another but similar course, in Swedish unless explicitily stated to be in English:
-
Why is a compiler called a "compiler"?
Literature
-
Course book
Aho, Lam, Sethi, Ullman:
Compilers: Principles, Techniques, and Tools,
Second Edition,
Addison Wesley, 2007.
Paperback:
ISBN-10 0321491696
ISBN-13 978-0321491695.
Hardcover:
ISBN-10 0321486811
ISBN-13 978-0321486813.
[Link to paperback version on Amazon.co.uk]
-
The above version seems to be hard to find, and expensive,
but there is a new version of the book, with the same content:
ISBN-10: 1292024348,
ISBN-13: 978-1292024349.
Buy it from
amazon.co.uk
or from
amazon.com!
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
September 4, 2023