Advanced Program Analysis

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
PI-APA ZK 4 3C anglicky
Garant předmětu:
Jan Vitek
Jan Vitek
Jan Vitek
Předmět zajišťuje:
katedra teoretické informatiky

In the past decade, there have been great advances in the development of

automated tools that help programmers find various kinds of quality problems in their

code. This includes tools for finding bugs and security vulnerabilities, test generation,

fault detection and localization, etc. Many of these tools rely on program analysis to

compute an approximation of a program's behavior. In this special topics course, we

will study key publications in which static and dynamic program analysis algorithms

are used to detect bugs and security vulnerabilities in programs, and how these

algorithms are used in other tools that support programmers. Both theoretical

properties and practical effectiveness of program analysis algorithms will be studied.

Osnova přednášek:

1) static and dynamic techniques for finding errors, including type-based and

dataflow-based techniques

2) static and dynamic techniques for finding security vulnerabilities (e.g., taint


3) automatic test generation (e.g., using dynamic symbolic execution)

4) analysis challenges posed by dynamic and reflective programming language


5) specialized string analysis techniques for tracking the flow of string values in


6) suitability of program analysis algorithms for different programming languages

7) the use of open-source frameworks for program analysis

The course will be organized as follows. First, the instructor will present a few

lectures to review basic program analysis concepts and terminology (call graphs,

points-to graphs, SSA form, etc.) and key applications of program analysis

technology. Then, students and the instructor will take turns presenting publications.

Each paper presentation will be followed by a discussion. In addition to the

presentations, each student will do a modest-sized course project, which could

consist of, e.g., a literature study, the implementation/evaluation of a simple program

analysis, or the evaluation of tools that implement a program analysis. Students will

be expected to give a few short presentations about their project so that the other

course participants can provide constructive feedback. Instead of a final exam,

students will be required to write a short report about their project.

Osnova cvičení:
Cíle studia:

To understand the motivation and algorithmic solutions to the more complex

problems from static and dynamic analysis and to familiarize with influential papers

from the area.

Studijní materiály:

Flemming Nielson, Hanne Riis Nielson, Chris Hankin: Principles of Program Analysis,



Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/PI-APA/

Tento předmět je i pro české studenty POUZE v anglickém jazyce.

Další informace:
Rozvrh na zimní semestr 2023/2024:
Rozvrh není připraven
Rozvrh na letní semestr 2023/2024:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 17. 4. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet5083406.html