185.A04 Optimizing Compilers
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2014W, VU, 2.0h, 3.0EC, to be held in blocked form

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise

Aim of course

The students gain a comprehensive understanding of the theoretical
foundations and practical applications of program analysis and
optimization in compiler construction. They learn to valuate the
potential and limitations of automatic analyses and
optimizations. Beyond applications in compiler construction, this
allows them to design and write software in a style that, where
possible, comprehensibility, maintainability, and robustness is
prioritized over unnecessary performance considerations.

Subject of course

The course is concerned with the theory and practice of program
analysis and optimization, which is an essential field of research in
the area of programming languages and compilers. The course stretches
from the theoretical foundations to practical applications and the
automatic generation of program analyses and
optimizations. Theoretical and practical assignments as part of the
tutorial offer the opportunity to independently apply and practice
various analysis and optimization techniques, to prove properties they
meet, and to gain hands-on experience of the SATIrE tool used for
practical assignments. SATIrE integrates various tools for the
analysis and optimization of object-oriented languages, among these
the Program Analyzer Generator (PAG).

The course considers in particular the following topics and their
realization by means of SATIrE:

  • Foundations and applications of program analysis and optimization
  • Data-flow analysis (forward, backward, existential, universal)
  • Data-flow frameworks (intraprocedural, interprocedural)
  • Machine-independent optimizations, in particular syntactic and semantic redundancy elimination
  • Points-to, alias, and shape analysis
  • Analysis and optimization of object-oriented programs
  • Generators for analysis and optimization, especially SATIrE
  • ...

The preliminary course meeting and the first lecture take place on
Wed, 1 October 2014, 4.15 - 4.45 pm, in the library E185.1,
Argentinierstr. 8 (4th floor, centre).

Additional information

ECTS Break Down:

The course is assigned 3.0 ECTS points. This corresponds to an average
workload of 75 hours. This average workload is divided among the
various parts of the course as follows:

  • Attending the lectures, pre- and post-processing: 35 hours.
  • Assignments and excercise interviews: 35 hours.
  • Preparation for the examination and oral examination: 5 hours.

Lecturers

Institute

Examination modalities

Assessment of the programming assignments and the oral examination
on the lecture and tutorial materials. Further information on the
examination modalities are given on the homepage of the course.


Course registration

Not necessary

Curricula

Study CodeObligationSemesterPrecon.Info
066 931 Computational Intelligence Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective
066 938 Computer Engineering Mandatory elective

Literature

No lecture notes are available.

Previous knowledge

The course extends the course 185.311 Compiler Construction and
complements the courses 185.274 Advanced Compiler Construction and
185.276 Analysis and Verification. The course is thus especially
recommended for students who would like to focus on the field of
programming languages and compilers, and plan to work on a project or
to write a seminar or master's thesis in this field.

Preceding courses

Accompanying courses

Miscellaneous

Language

German