Vybrané metody analýzy programů
| Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
|---|---|---|---|---|
| NI-APR | Z,ZK | 5 | 2P+1C | česky |
- Garant předmětu:
- Filip Křikava
- Přednášející:
- Filip Křikava
- Cvičící:
- Filip Křikava
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
Tento kurz vás seznámí s programovou analýzou, tedy automatizovaným usuzováním o chování počítačového programu. Budeme se zabývat statickou i dynamickou analýzou. Ve statické analýze se podíváme na umění usuzování o programech bez jejich spuštění. Zaměříme se na analýzy pro porozumění programům, optimalizace a detekci chyb. V dynamické analýze se budeme zabývat analýzami, které zohledňují jednotlivé běhy programu v konkrétním prostředí a s konkrétními vstupy.
- Požadavky:
-
BI-OOP, BI-PPA, BI-PJP
Budete psát interpret AST a několik statických analýz, takže je vhodné být zběhlý v nějakém programovacím jazyce. Šablona projektu je připravena v jazycích Scala a C++.
- Osnova přednášek:
-
1. Úvod do programové analýzy
2. Typová analýza 1
3. Typová analýza 2
4. Svazy (Lattices)
5. Pevné body (Fixed points)
6. Analýza toku dat 1 (Dataflow analysis 1)
7. Analýza toku dat 2 (Dataflow analysis 2)
8. Rámec bitových vektorů, rozšiřování a zužování (Widening and narrowing)
9. Interprocedurální analýza
10. Analýza toku řízení (Control flow analysis)
11. Abstraktní interpretace
12. Dynamická analýza
- Osnova cvičení:
-
1. Jazyk microC
2. Svazy (Lattices)
3. Analýza toku dat
4. Citlivost na cesty (Path sensitivity)
5. Analýza ukazatelů
6. Dynamická analýza
- Cíle studia:
- Studijní materiály:
-
1. Anders Møller and Michael I Schwartzbach. Static Program Analysis. Department of Computer Science, Aarhus University, 2018.
2. Cooper, K. - Torczon, L. : Engineering: A Compiler (2nd Edition). Morgan Kaufmann, 2011. ISBN 978-0120884780.
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/NI-APR/
- Další informace:
- https://courses.fit.cvut.cz/NI-APR/
- Rozvrh na zimní semestr 2025/2026:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Rozvrh na letní semestr 2025/2026:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (volitelný předmět)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (PS)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Mgr. specializace Systémové programování, verze od 2023 (PS)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)
- Učitelství informatiky pro střední školy (volitelný předmět)
- Mgr. specializace Počítačová bezpečnost, 2026 (VO)
- Mgr. specializace Počítačové systémy a sítě, 2026 (VO)
- Mgr. specializace Teoretická informatika, 2026 (VO)
- Mgr. specializace Programovací jazyky, 2026 (PS)
- Mgr. specializace Umělá inteligence, 2026 (VO)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2026 a vyšší (VO)
- Master programme, for the phase of study without specialisation, ver. for 2026 and higher (VO)