Selected Methods for Program Analysis
| Code | Completion | Credits | Range | Language |
|---|---|---|---|---|
| NI-APR | Z,ZK | 5 | 2P+1C | Czech |
- Course guarantor:
- Filip Křikava
- Lecturer:
- Filip Křikava
- Tutor:
- Filip Křikava
- Supervisor:
- Department of Theoretical Computer Science
- Synopsis:
-
This course introduces you to program analysisthe automated reasoning about the behavior of computer programs. We will cover both static and dynamic analysis. In static analysis, we explore the art of reasoning about programs without executing them, including techniques for program understanding, optimization, and error detection. In dynamic analysis, we examine individual program executions within specific environments and inputs.
- Requirements:
-
BI-OOP, BI-PPA, BI-PJP
You will be writing an AST interpreter and a number of static analyses so it is good to be proficient in some programming language. The project template is in Scala and C++.
- Syllabus of lectures:
-
1. Introduction to program analysis
2. Type analysis 1
3. Type analysis 2
4. Lattices
5. Fixed points
6. Dataflow analysis 1
7. Dataflow analysis 2
8. Bit-vector framework, widening and anrrowing
9. Interprocedural analysis
10. Control flow analysis
11. Abstract interpretation
12. Dynamic analysis
- Syllabus of tutorials:
-
1. The microC language
2. Lattices
3. Dataflow analysis
4. Path sensitivity
5. Pointer analysis
6. Dynamic analysis
- Study Objective:
- Study materials:
-
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.
- Note:
-
Course information and material is at https://courses.fit.cvut.cz/NI-APR/
- Further information:
- https://courses.fit.cvut.cz/NI-APR/
- Time-table for winter semester 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
Mon Tue Wed Thu Fri - Time-table for summer semester 2025/2026:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 2020 (elective course)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (PS)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Master specialization System Programming, in Czech, version from 2023 (PS)
- Master specialization Computer Science, in Czech, 2023 (elective course)
- Teaching Informatics for Secondary Schools (elective course)
- Quantum Informatics (elective course)
- Mgr. programe Applied informatics (code ANIE) for the phase of study without specialization (elective course)
- Master specialization Embedded systems (elective course)
- Master specialization Business Informatics, 2026 (elective course)
- Master specialization Software Engineering (elective course)
- Master specialization Web Engineering (elective course)
- Master specialization Visual computing and Game design (elective course)
- Master specialization Computer Security, in Czech, 2026 (VO)
- Master specialization Computer Systems and Networks, in Czech, 2026 (VO)
- Master specialization Computer Science, in Czech, 2026 (VO)
- Master specialization Programming Languages, in Czech, 2026 (PS)
- Master specialization Artificial Intelligence, in Czech, 2026 (VO)
- Master programme, for the phase of study without specialisation, ver. for 2026 and higher (VO)