|
Modulbezeichnung (engl.):
Virtual Machines and Program Analysis |
|
Code: PIM-VMPA |
|
2V+4P (6 Semesterwochenstunden) |
8 |
Studiensemester: 1 |
Pflichtfach: nein |
Arbeitssprache:
Deutsch |
Prüfungsart:
Klausur, Projektarbeit
[letzte Änderung 21.06.2007]
|
KI744 Kommunikationsinformatik, Master, ASPO 01.04.2016
, 1. Semester, Wahlpflichtfach, informatikspezifisch
KIM-VMPA (P221-0148) Kommunikationsinformatik, Master, ASPO 01.10.2017
, 1. Semester, Wahlpflichtfach, informatikspezifisch
PIM-WI55 (P221-0147) Praktische Informatik, Master, ASPO 01.10.2011
, 1. Semester, Wahlpflichtfach, informatikspezifisch
PIM-VMPA (P221-0148) Praktische Informatik, Master, ASPO 01.10.2017
, 1. Semester, Wahlpflichtfach, informatikspezifisch
|
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 90 Veranstaltungsstunden (= 67.5 Zeitstunden). Der Gesamtumfang des Moduls beträgt bei 8 Creditpoints 240 Stunden (30 Std/ECTS). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 172.5 Stunden zur Verfügung.
|
Empfohlene Voraussetzungen (Module):
Keine.
|
Als Vorkenntnis empfohlen für Module:
|
Modulverantwortung:
Dr.-Ing. Jörg Herter |
Dozent/innen: Dr.-Ing. Jörg Herter
[letzte Änderung 10.11.2016]
|
Lernziele:
Konzept der/Motivation hinter Virtuellen Maschinen am Beispiel der CMa. Übersetzung von C-Code nach CMa-Code. Kennenlernen der wichtigsten Programmanalysen (Verfügbare Ausdrücke, Intervallanalyse, Konstantenpropagation, Tote Variablen, usw.). Erarbeiten der in der Programmanalyse benutzten (Fixpunkt-)Algorithmen: naive Fixpunktiteration, Round-Robin, Worklist, rekursive Iteration. Verstehen der hinter der Analysemethoden liegenden Mathematik, insb. des Konzepts des vollständigen Verbands. In der Projektarbeit "Statische Analyse von sicherheitskritischem C-Code" werden State-of-the-art-Analysatoren benutzt, um echten Industriecode zu analysieren. Die Studenten erhalten hierbei Einblicke, welche Analysen derzeit technisch möglich sind und wie sich Entwicklung/Programmierstil von sicherheitskritischer Software (z.B. aus der Luft- und Raumfahrt oder der Automobilindustrie) verglichen mit der Entwicklung von "normaler Software" unterscheidet.
[letzte Änderung 06.07.2017]
|
Inhalt:
1.Einleitung (Höhere Programmiersprachen, Implementierung von Programmiersprachen) 2.Die Architektur der CMa 3.Übersetzung einfacher C-Sprachelemente 4.Übersetzung von structs 5.Übersetzung von Funktionen 6.Einleitung (Programmanalysen und Transformationen) 7.Operationelle Semantik/CFGs 8.Nichtverfügbare und verfügbare Ausdrücke 9.Fixpunktiteration: naiv, Round-Robin, Worklist und rekursive Iteration 10.Mathematischer Hintergrund (Wie können wir beweisen, dass unsere Analyse das beste Ergebnis liefert bzw. überhaupt terminiert?) 11.Lebendige, tote und echt lebendige Variablen 12.Gleichheit von Variablen 13.Konstantenpropagation und Intervallanalyse
[letzte Änderung 21.06.2007]
|
Literatur:
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
[letzte Änderung 02.01.2011]
|
Modul angeboten in Semester:
WS 2024/25,
WS 2023/24,
WS 2022/23,
WS 2021/22,
WS 2020/21,
...
|