Advanced Program Analysis
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
PI-APA | ZK | 4 | 3C | anglicky |
- Garant předmětu:
- Jan Vitek
- Přednášející:
- Jan Vitek
- Cvičící:
- Jan Vitek
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
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.
- Požadavky:
- 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
analysis)
3) automatic test generation (e.g., using dynamic symbolic execution)
4) analysis challenges posed by dynamic and reflective programming language
features
5) specialized string analysis techniques for tracking the flow of string values in
applications
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,
Springer.
- Poznámka:
-
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:
- https://courses.fit.cvut.cz/PI-APA/
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Informatika (doktorská) (povinně volitelný předmět)
- Informatika (povinně volitelný předmět)