|
Einführung
Viele Compiler optimieren die zu übersetzenden Programme, wobei
beispielsweise überflüssige Variablen entfernt oder die mehrfache
Berechnung gleicher Zwischenergebnisse vermieden wird. Diese und
andere Optimierungen lassen sich als Spezialfälle einer Methode zur
Datenflussanalyse in einem Programm auffassen, deren Kern ein einfacher
Algorithmus ist, der sogenannte Worklist-Algorithmus.
Genauer gesagt extrahiert man aus jeder Anweisung des Programms die
für die jeweilige Analyse relevante Information und gibt an, wie
die Hintereinanderausführung zweier Anweisungen sowie Verzweigungen
im Kontrollfluss die Informationen beeinflussen. Mathematisch gesehen
bilden die Analysewerte einen vollständigen Verband.
Der Worklist-Algorithmus kann mit einem solchen Verband instanziiert
werden und beschreibt allgemein, wie das Analyse-Ergebnis berechnet
wird. Je nach Instanziierung kann er verschiedene Analyseergebnisse
produzieren.
Über wAnalyzer
Das vorliegende Tool implementiert den Worklist-Algorithmus für eine
einfache Programmiersprache und instanziiert ihn für mehrere Analysen,
z.B. das Auffinden uninitialisierter Variablen. Da der Algorithmus
modular implementiert ist, kann er leicht um weitere Analysen
erweitert werden. Die Steuerung erfolgt wahlweise über eine
textbasierte oder eine graphische Benutzerschnittstelle.
Dateien
Kontakt
Das Tool wurde im Rahmen eines Softwarepraktikums von
Andreas Gaiser
und
Frederik Stahr
entwickelt. Fragen sollten an die Autoren oder an
Barbara König oder
Stefan Schwoon gerichtet werden.
Veränderungen
- 26.04.2005: Version 1.0.2 (Änderungen am Makefile und am README)
- 07.12.2004: Version 1.0.1 (kleine Änderung am Makefile)
- 06.12.2004: Version 1.0.0 freigegeben
|
|