ID2202 Compilers and Execution Environments 7.5 credits

Kompilatorer och exekveringsmiljöer

Please note

The information on this page is based on a course syllabus that is not yet valid.

  • Education cycle

    Second cycle
  • Main field of study

  • Grading scale

    A, B, C, D, E, FX, F

Course offerings

Intended learning outcomes

Having passed the course, the student should be able to:

  • explain the general structure of a compiler
  • use methods for lexical, syntactic and semantic analysis
  • use methods for generation of machine code
  • use methods for optimizing programs
  • explain common components in execution environments

in order to

  • obtain an understanding of how a programming language is implemented as well as for the general theories that are used and how these can be applied.

Course main content

The course covers technologies for implementation of programming languages by means of compilers, both for real and virtual execution environments, technologies to read, understand, translate, improve as well as execute programs:

  • To read programs: lexical analysis and syntax analysis. Finite state machines, regular expression context free grammars, LL and LR-parsing.
  • To understand programs: semantic analysis, type checking.
  • To translate programs: machines and instructions.
  • Intermediary code, choice of instructions, conventions for procedure calls.
  • To improve programs: machine independent optimisations; computer-oriented optimisations (register allocation, scheduling of instructions).
  • To execute programs: virtual execution environments and runtime systems. Memory management, garbage collection, to load and link programs, just-in-time compilation.

Disposition

Eligibility

  • Completed course in basic computer engineering/architecture equivalent to IS1200 Computer Hardware Engineering.
  • Completed course ID1020 Algorithms and Data Structures or the equivalent.

Recommended prerequisites

IS1200 Computer Hardware Basics,
ID1218 Applied Programming or equivalent.

Literature

Modern Compiler Implementation in Java, Andrew W. Appel

Upplaga: Second Förlag: Cambridge University Press År: 2002

ISBN:

Required equipment

Examination

  • INL1 - Assignments, 1.5, grading scale: P, F
  • TEN1 - Examination, 6.0, grading scale: A, B, C, D, E, FX, F

In agreement with KTH´s coordinator for disabilities, it is the examiner who decides to adapt the examination for students in possession of a valid medical certificate. The examiner may permit other examination forms at the re-examination of few students

Requirements for final grade

Offered by

EECS/Computer Science

Contact

Schulte, Christian

Examiner

Christian Schulte <cschulte@kth.se>

Version

Course syllabus valid from: Autumn 2019.
Examination information valid from: Spring 2019.