<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<document>
<title>Virtuelle Maschinen und Programmanalyse</title>
<cid>KI744</cid>
<bkey>kim</bkey>
<ctypes>
<hours>2</hours>
<type>V</type>
<hours>4</hours>
<type>P</type>
</ctypes>
<cp>8</cp>
<semester>1</semester>
<mandatory>nein</mandatory>
<language>Deutsch</language>
<exam>Klausur, Projektarbeit</exam>
<curriculum>
<curriculum_entry>
<cid>KI744</cid>
<branch>Kommunikationsinformatik</branch>
<semester>1</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>KIM-VMPA</cid>
<branch>Kommunikationsinformatik</branch>
<semester>1</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIM-WI55</cid>
<branch>Praktische Informatik</branch>
<semester>1</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIM-VMPA</cid>
<branch>Praktische Informatik</branch>
<semester>1</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIM-VMPA</cid>
<branch>Praktische Informatik</branch>
<semester>1</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>TIM-VMPA</cid>
<branch>Technische Informatik</branch>
<semester>1</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
</curriculum>
<workload>
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 90 Veranstaltungsstunden (= 67.5 Zeitstunden). Der Gesamtaufwand des Moduls beträgt bei 8 Creditpoints 240 Stunden (30 Stunden/ECTS Punkt). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 172.5 Stunden zur Verfügung.
</workload>
<prerequisites>
</prerequisites>
<prerequisitesfor>
<prerequisitefor>
<pfcid>KI844</pfcid>
<pftitle>Shape Analysis</pftitle>
</prerequisitefor>
</prerequisitesfor>
<convenor>Dr.-Ing. Jörg Herter</convenor>
<convenor-person-key>jh</convenor-person-key>
<lecturers>
<lecturer>Dr.-Ing. Jörg Herter</lecturer>
<lecturer-person-key>jh</lecturer-person-key>
</lecturers>
<objectives>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 &quot;Statische Analyse von sicherheitskritischem C-Code&quot;
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 &quot;normaler Software&quot;
unterscheidet.

</objectives>
<content>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</content>
<literature>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</literature>
<offered>
<semshort>WS 2018/19</semshort>
<semshort>WS 2017/18</semshort>
<semshort>WS 2016/17</semshort>
<semshort>WS 2015/16</semshort>
<semshort>WS 2014/15</semshort>
<semshort>WS 2013/14</semshort>
<semshort>WS 2012/13</semshort>
<semshort>WS 2011/12</semshort>
<semshort>WS 2010/11</semshort>
<semshort>WS 2009/10</semshort>
<semshort>WS 2008/09</semshort>
<semshort>WS 2007/08</semshort>
</offered>
<moduldb-query>Sun Mar 15 20:51:35 CET 2026, CKEY=kvmup, BKEY=kim, CID=[?], LANGUAGE=de, DATE=15.03.2026</moduldb-query>
</document>
