[I2 logo] [RWTH logo] MOVES: Software Modeling and Verification
(Informatik 2)
Computer Science / RWTH / I2 / Staff / Current / Mohnen / DIPLOM / Absi
Printer-friendly

DA: Entwurf und Implementierung einer Bibliothek für Abstrakte Interpretation

 Beschreibung

Abstrakte Interpretationen ermöglichen die Feststellung von Programmeigenschaften zur Übersetzungszeit und bilden somit eine Grundlage für verbesserte Codeerzeugung in Compilern. Bei der Entwicklung eines konkreten Compilers muß somit die Abstrakte Interpretation als logische Phase integriert werden. Dabei sind mehrere Ziele erstrebenswert: Einerseits soll die Umsetzung in möglichst einfacher und portabler Weise geschehen, um Modifikationen und Erweiterungen der Ausgangssprache gegenüber flexibler zu sein. Andererseits soll eine gute Effizienz erreicht werden können, damit der Übersetzungsprozeß nicht übermäßig verlangsamt wird. Darüberhinaus ist es wünschenswert, wiederverwertbare Teile zu identifizieren, die von der konkreten Quellsprache und/oder der konkreten Abstrakten Interpretation unabhängig sind. Solche Komponenten können dann in anderen Compilern oder bei anderen Abstrakten Interpretationen erneut Verwendung finden.

Es liegt daher nahe eine allgemeine Bibliothek zu entwerfen, die es ermöglicht eine (möglichst große) Klasse von Abstrakten Interpretationen in Compilern zu integrieren. Diese Bibliothek sollte die Darstellung der Abstrakten Werte und Funktionen sowie die Berechnung der Fixpunktes verkapseln und somit einen sicheren Wechsel von Darstellung und Algorithmen erlauben. Damit wäre es möglich mit verschiedenen allgemeinen Ansätzen zur Effizienzsteigerung wie etwa BDDs [Mau94], chaotische Fixpunktberechnung [CC92,VWL94] oder Frontiers [HH91] zu experimentieren.

In dieser Arbeit soll nun eine solche Bibliothek entworfen und implementiert werden. Dabei soll zunächst von endlichen Bereichen mit Bitvektordarstellung ausgegangen werden, womit insbesondere die Halbordnungen als bitweiser Vergleich festgelegt sind. Desweiteren sollen zunächst nur monomorphe Abstrakte Interpretationen betrachtet werden. Für den weiteren Aufbau einer Abstrakten Interpretation sollte die Bibliothek Möglichkeiten enthalten den strukturellen Aufbau von Termen und Funktionen nachzubilden. Als Fallbeispiel soll zumindest die Abstrakte Interpretation zur Ermittlung von Vererbungsinformationen aus [Moh95b,Moh95a] mit Hilfe der Bibliothek implementiert werden. Allerdings soll eine generelle Benutzbarkeit der Bibliothek angestrebt werden.

Mögliche Erweiterungen wären der Übergang zu endlichen Bereichen mit komplexeren Halbordnungen oder polymorphen Funktionen.

In dieser Diplomarbeit sind nun die folgenden Punkte zu bearbeiten:

  • Entwurf und Implementierung einer Bibliothek,
  • Untersuchung von alternativen Implementierungstechniken, insbesondere internen Darstellungen und Fixpunktalgorithmen,
  • Untersuchung der Effizienz,
  • zumindest Anwendung der Ergebnisse auf die Abstrakte Interpretation aus [Moh95b,Moh95a]. Ein weiteres Anwendunggebiet könnte die Uniqueness-Analyse aus [DS95] oder [Kuc95] sein.

 Literatur

[CC92]
P. Cousot and R. Cousot. Abstract Interpretation and Application to Logic Programs. Journal of Logic Programming, 13(2-3):103-179, 1992.
[DS95]
E. Darendsen and S. Smetsers. Uniqueness Type Inference. In M. Hermenegildo and S. Doaitse Swierstra, editors, PLILP'95, number 982 in LNCS, pages 189-206. Springer-Verlag, 1995.
[HH91]
S. Hunt and C. Hankin. Fixed points and frontiers: a new perspective. Journal of Functional Programming, 1(1):91-120, January 1991.
[Kuc95]
H. Kuchen. Datenparallele Porgrammierung von MIMD-Rechnern mit verteiltem Speicher Kapitel 6. 1995.
[Mau94]
L. Mauborgne. Abstract Interpretatuin Using TDGs. In B. Le Charlier, editor, Static Analysis (SAS'94), LNCS 864, pages 363-379. Springer-Verlag, 1994.
[Moh95a]
M. Mohnen. Efficient Closure Utilisation by Higher-Order Inheritance Analysis. In Proceedings of SAS 95, LNCS 983, 1995.
[Moh95b]
M. Mohnen. Efficient Compile-Time Garbage Collection for Arbitrary Data Structures. In Proceedings of PLILP 95, LNCS 982, 1995.
[VWL94]
B. Vergauwen, J. Wauman, and J. Lewi. Efficient FixPoint Computation. In B. Le Charlier, editor, Static Analysis (SAS'94), LNCS 864, pages 314-328. Springer Verlag, 1994.
Valid HTML 4.01 Strict! Valid CSS!