htw saar Piktogramm QR-encoded URL
Back to Main Page Choose Module Version:
emphasize objectives XML-Code

flag


Virtual Machines and Program Analysis

Module name (EN):
Name of module in study programme. It should be precise and clear.
Virtual Machines and Program Analysis
Degree programme:
Study Programme with validity of corresponding study regulations containing this module.
Applied Informatics, Master, ASPO 01.10.2017
Module code: PIM-VMPA
SAP-Submodule-No.:
The exam administration creates a SAP-Submodule-No for every exam type in every module. The SAP-Submodule-No is equal for the same module in different study programs.
P221-0148
Hours per semester week / Teaching method:
The count of hours per week is a combination of lecture (V for German Vorlesung), exercise (U for Übung), practice (P) oder project (PA). For example a course of the form 2V+2U has 2 hours of lecture and 2 hours of exercise per week.
2V+4P (6 hours per week)
ECTS credits:
European Credit Transfer System. Points for successful completion of a course. Each ECTS point represents a workload of 30 hours.
8
Semester: 1
Mandatory course: no
Language of instruction:
German
Assessment:
Written exam, project

[updated 26.02.2018]
Applicability / Curricular relevance:
All study programs (with year of the version of study regulations) containing the course.

KI744 Computer Science and Communication Systems, Master, ASPO 01.04.2016 , semester 1, optional course, informatics specific
KIM-VMPA (P221-0148) Computer Science and Communication Systems, Master, ASPO 01.10.2017 , semester 1, optional course, informatics specific
PIM-WI55 (P221-0147) Applied Informatics, Master, ASPO 01.10.2011 , semester 1, optional course, informatics specific
PIM-VMPA (P221-0148) Applied Informatics, Master, ASPO 01.10.2017 , semester 1, optional course, informatics specific
Workload:
Workload of student for successfully completing the course. Each ECTS credit represents 30 working hours. These are the combined effort of face-to-face time, post-processing the subject of the lecture, exercises and preparation for the exam.

The total workload is distributed on the semester (01.04.-30.09. during the summer term, 01.10.-31.03. during the winter term).
90 class hours (= 67.5 clock hours) over a 15-week period.
The total student study time is 240 hours (equivalent to 8 ECTS credits).
There are therefore 172.5 hours available for class preparation and follow-up work and exam preparation.
Recommended prerequisites (modules):
None.
Recommended as prerequisite for:
Module coordinator:
Dr.-Ing. Jörg Herter
Lecturer: Dr.-Ing. Jörg Herter

[updated 10.11.2016]
Learning outcomes:
Students will become acquainted with the concept of and motivation behind virtual machines using the CMa as an example.
Students will be able to translate C code to CMa code.
 
Students will be familiar with the most important program analyses (available expressions,
interval analysis, constant propagation, dead variables, etc.).
Students will be able to work out the (fixed-point) algorithms used in program analysis:
naive fixed-point iteration, round robin, worklist, recursive iteration.
Students will understand the mathematics behind the methods of analysis, in particular
the concept of complete lattices.
 
State-of-the-art analyzers will be used in the project
"Statische Analyse von sicherheitskritischem C-Code" to analyze code
used in industry. Students will gain insights into which analyses
are technically possible and how the development/programming style of
safety-critical software (e. g. from the aerospace or automotive
industry) differs from the development of
"normal software".
 


[updated 26.02.2018]
Module content:
1. Introduction (high-level programming languages, implementation of programming languages)
2. The architecture of CMa
3. Translating simple C language elements
4. Translating structs
5. Translating functions
6. Introduction (program analysis and transformations)
7. Operational semantics/CFGs
8. Not available and available expressions
9. Fixed point iteration: naive, round-robin, worklist and recursive iteration
10. Mathematical background (How can we prove that our analysis provides the best results resp. even terminates?)
11. Live, dead and strongly live variables
12. Equality of variables
13. Constant propagation and interval analysis

[updated 06.09.2018]
Recommended or required reading:
R. WILHELM, H. SEIDL: Übersetzerbau. Virtuelle Maschinen
H. SEIDL, R. WILHELM, S. HACK: Übersetzerbau. Analyse und Transformation
F. NIELSON, H. NIELSON, C. HANKIN: Principles of Program Analysis
P. COUSOT,  R. COUSOT: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

[updated 26.02.2018]
Module offered in:
WS 2023/24, WS 2022/23, WS 2021/22, WS 2020/21, WS 2019/20, ...
[Thu May 30 12:36:46 CEST 2024, CKEY=kvmup, BKEY=pim2, CID=PIM-VMPA, LANGUAGE=en, DATE=30.05.2024]