htw saar Piktogramm QR-encoded URL
Zurück zur Hauptseite Version des Moduls auswählen:
Lernziele hervorheben XML-Code


Virtuelle Maschinen und Programmanalyse

Modulbezeichnung:
Bezeichnung des Moduls innerhalb des Studiengangs. Sie soll eine präzise und verständliche Überschrift des Modulinhalts darstellen.
Virtuelle Maschinen und Programmanalyse
Modulbezeichnung (engl.): Virtual Machines and Program Analysis
Studiengang:
Studiengang mit Beginn der Gültigkeit der betreffenden ASPO-Anlage/Studienordnung des Studiengangs, in dem dieses Modul zum Studienprogramm gehört (=Start der ersten Erstsemester-Kohorte, die nach dieser Ordnung studiert).
Praktische Informatik, Master, ASPO 01.10.2017
Code: PIM-VMPA
SAP-Submodul-Nr.:
Die Prüfungsverwaltung mittels SAP-SLCM vergibt für jede Prüfungsart in einem Modul eine SAP-Submodul-Nr (= P-Nummer). Gleiche Module in unterschiedlichen Studiengängen haben bei gleicher Prüfungsart die gleiche SAP-Submodul-Nr..
P221-0148
SWS/Lehrform:
Die Anzahl der Semesterwochenstunden (SWS) wird als Zusammensetzung von Vorlesungsstunden (V), Übungsstunden (U), Praktikumsstunden (P) oder Projektarbeitsstunden (PA) angegeben. Beispielsweise besteht eine Veranstaltung der Form 2V+2U aus 2 Vorlesungsstunden und 2 Übungsstunden pro Woche.
2V+4P (6 Semesterwochenstunden)
ECTS-Punkte:
Die Anzahl der Punkte nach ECTS (Leistungspunkte, Kreditpunkte), die dem Studierenden bei erfolgreicher Ableistung des Moduls gutgeschrieben werden. Die ECTS-Punkte entscheiden über die Gewichtung des Fachs bei der Berechnung der Durchschnittsnote im Abschlusszeugnis. Jedem ECTS-Punkt entsprechen 30 studentische Arbeitsstunden (Anwesenheit, Vor- und Nachbereitung, Prüfungsvorbereitung, ggfs. Zeit zur Bearbeitung eines Projekts), verteilt über die gesamte Zeit des Semesters (26 Wochen).
8
Studiensemester: 1
Pflichtfach: nein
Arbeitssprache:
Deutsch
Prüfungsart:
Klausur, Projektarbeit

[letzte Änderung 21.06.2007]
Verwendbarkeit / Zuordnung zum Curriculum:
Alle Studienprogramme, die das Modul enthalten mit Jahresangabe der entsprechenden Studienordnung / ASPO-Anlage.

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
Arbeitsaufwand:
Der Arbeitsaufwand des Studierenden, der für das erfolgreiche Absolvieren eines Moduls notwendig ist, ergibt sich aus den ECTS-Punkten. Jeder ECTS-Punkt steht in der Regel für 30 Arbeitsstunden. Die Arbeitsstunden umfassen Präsenzzeit (in den Vorlesungswochen), Vor- und Nachbereitung der Vorlesung, ggfs. Abfassung einer Projektarbeit und die Vorbereitung auf die Prüfung.

Die ECTS beziehen sich auf die gesamte formale Semesterdauer (01.04.-30.09. im Sommersemester, 01.10.-31.03. im Wintersemester).
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, ...
[Fri Oct 11 08:28:12 CEST 2024, CKEY=kvmup, BKEY=pim2, CID=PIM-VMPA, LANGUAGE=de, DATE=11.10.2024]