Dissertation DIS-2009-06

Bibliograph.
Daten
Staiger-Stöhr, Stefan: Kombinierte statische Ermittlung von Zeigerzielen, Kontroll- und Datenfluss.
Universität Stuttgart, Fakultät Informatik, Elektrotechnik und Informationstechnik, Dissertation (2009).
431 Seiten, deutsch.
CR-Klassif.F.3.2 (Semantics of Programming Languages)
D.3.4 (Programming Languages Processors)
KeywordsStatische Analyse; Zeiger ; Datenfluss; Kontrollfluss; Programmanalyse; Zeigeranalyse; Andersen-Analyse
Kurzfassung

Datenfluss-basierte statische Programmanalysen benötigen Informationen zu den an einer Programmstelle eintreffenden gültigen Definitionen. Dieses Wissen wiederum basiert auf dem Kontrollfluss. Zeiger-indirekte Operationen verschleiern jedoch beides, Kontroll- und Datenfluss: An solchen Operationen benötigt die Analyse Wissen über die potentiellen Zeigerziele, was aber seinerseits ein Datenfluss-Problem ist.

Die vorliegende Dissertation bespricht ein neues Verfahren, um diese drei zentralen Probleme in Kombination zu lösen. Der wesentliche Unterschied zu bekannten Zeigeranalysen ist dabei, die Probleme zusammen zu betrachten und zugleich zu lösen. Das erlaubt es uns, die Aufgabe nicht als Datenfluss-Problem auf der Kontrollfluss-Darstellung zu betrachten, sondern stattdessen als Grapherreichbarkeits-Problem auf der Datenfluss-Darstellung. Der Ansatz hierzu ist sehr einfach: Die wechselseitige Bestimmung von Datenfluss-Beziehungen und das Propagieren von Zeigerzielen löst iterativ das Problem. Die Analyse ist dabei fluss-sensitiv und beherrscht starke Aktualisierungen; eine fluss-insensitive Betrachtung führt auf die bekannte Zeigeranalyse von Andersen. Wie diese Arbeit zeigt, erreichen wir die höhere Genauigkeit zu den gleichen asymptotischen Kosten.

Die Dissertation beweist die Korrektheit des neuen Verfahrens und präsentiert eine ausführliche Evaluation, in der es sich dank Zyklenkontraktion als moderat quadratisch herausstellt. Schließlich präsentiert die Dissertation mit einer Erweiterung der neuen Analyse die erste fluss-sensitive Zeigeranalyse, welche starke Aktualisierungen unterstützt, die sogenannte meet-over-all-valid-paths-Lösung berechnet und dabei nur biquadratische Komplexität besitzt. Dies sind weitere klare Fortschritte zum aktuellen Stand der Forschung.

Volltext und
andere Links
Katalog der Universitätsbibliothek Stuttgart
Abteilung(en)Universität Stuttgart, Institut für Softwaretechnologie, Programmiersprachen und Übersetzerbau
BetreuerPlödereder, Erhard
Eingabedatum29. Juni 2010
   Publ. Informatik