EDAP15 Program Analysis

Course facts

Credits:7.5 hp, Advanced level

Study period: LP3 2023/2024 (vt1 2024)

Lecture Room: M:J (same as M:2170; M-house, second floor)

Time and date: Mondays and Wednesdays 08:15

Course responsible: Christoph Reichenbach

Teaching Assistants: Alexandru Dura, Anton Risberg Alaküla

Student representatives: tbd

Materials: slides, videos, textbook (for download)

Office hours: Mondays 14:00–15:30 in E:2112b

Previous course instances: 2022 2020 2018 (as PhD course)

Exam: Optional oral exam

Participation Requirements

In order to participate in the course, you must:

  1. Be registered in Ladok (incl. late registrations)
  2. Register for this course in Moodle no later than on the first day of classes
  3. Show up in person for the first lecture or send me an e-mail with the title "EDAP15: Cannot attend first lecture" no later than noon 2024-01-16
  4. Sign up for a (two-person) homework exercise group or have a TA assign a partner to you, as explained in the first lecture

Exceptions

Getting Your Questions Answered

News

Textbooks and References

Overview

Program analysis is the foundation for most modern software tools, such as compilers, bug checkers, just-in-time optimisers, refactoring engines, and IDEs. It also plays a key role in software security. In this course we will discuss how to construct tools that can analyse software artefacts, and explore three central program analysis techniques: type inference, dataflow analysis, and dynamic program analysis.

The course format includes lectures, flipped classroom segments, and homework exercises that emphasise practical program analysis tasks. You will initially work in groups of two and later work by yourself.

PhD students: contact Christoph before the course starts to discuss details.