htw saar
Zurück zur Hauptseite

Version des Moduls auswählen:

Virtuelle Maschinen und Programmanalyse

Modulbezeichnung: Virtuelle Maschinen und Programmanalyse
Modulbezeichnung (engl.): Virtual Machines and Program Analysis
Studiengang: Praktische Informatik, Master, ASPO 01.10.2011
Code: PIM-WI55
SWS/Lehrform: 2V+4P (6 Semesterwochenstunden)
ECTS-Punkte: 8
Studiensemester: 1
Pflichtfach: nein
Arbeitssprache:
Deutsch
Prüfungsart:
Klausur, Projektarbeit
Zuordnung zum Curriculum:
KI744 Kommunikationsinformatik, Master, ASPO 01.10.2010, 1. Semester, Wahlpflichtfach, informatikspezifisch
KIM-VMPA Kommunikationsinformatik, Master, ASPO 01.10.2017, 1. Semester, Wahlpflichtfach, informatikspezifisch
PIM-WI55 Praktische Informatik, Master, ASPO 01.10.2011, 1. Semester, Wahlpflichtfach, informatikspezifisch
PIM-VMPA Praktische Informatik, Master, ASPO 01.10.2017, 1. Semester, Wahlpflichtfach, informatikspezifisch
Arbeitsaufwand:
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 90 Stunden. Der Gesamtumfang des Moduls beträgt bei 8 Creditpoints 240 Stunden. Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 150 Stunden zur Verfügung.
Empfohlene Voraussetzungen (Module):
Keine.
Als Vorkenntnis empfohlen für Module:
PIM-WI52 Shape Analysis


[letzte Änderung 17.01.2008]
Modulverantwortung:
Dr.-Ing. Jörg Herter
Dozent:
Dr.-Ing. Jörg Herter


[letzte Änderung 08.07.2007]
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 2017/18, WS 2016/17, WS 2015/16, WS 2014/15, WS 2013/14, ...
[Sat Nov 25 12:17:48 CET 2017, CKEY=kvmup, BKEY=pim, CID=PIM-WI55, LANGUAGE=de, DATE=25.11.2017]