Übersetzungstechniken, Analysen und Transformationen
von Martin Trapp.
Berlin, Heidelberg
Springer Berlin Heidelberg
2001
.
Xpert.press
1 Einleitung --;2 Anforderungsanalyse --;2.1 Ineffizienzen objektorientierter Programme --;2.2 Benötigte Optimierungen --;2.3 Benötigte Programminformationen --;2.4 Approximation von Programminformationen --;2.5 Beziehungen zwischen Programminformationen --;2.6 Zusammenfassung --;3 Stand von Forschung und Technik --;3.1 Optimierungen --;3.2 Programmanalyse --;3.3 Programmrepräsentation --;3.4 Offene Probleme --;4 Explizite Abhängigkeitsgraphen --;4.1 Darzustellende Informationen --;4.2 Syntax und Semantik expliziter Abhängigkeitsgraphen --;4.3 Aufbau aus der semantischen Analyse --;4.4 Abbau der Darstellung --;4.5 Zusammenfassung --;5 Programmanalyse über expliziten Abhängigkeitsgraphen --;5.1 Analyse von Werten und Abhängigkeiten --;5.2 Beschleunigung der Konvergenz --;5.3 Reduktion des Speicherbedarfs --;5.4 Modellierung kontextsensitiver Werte mit?-Termen --;5.5 Zusammenfassung --;6 Optimierung expliziter Abhängigkeitsgraphen --;6.1 Transformationen als Graphersetzung --;6.2 Traditionelle Optimierungen --;6.3 Beseitigung objektorientierter Ineffizienzen --;6.4 Reduktion nicht essentieller Abhängigkeiten --;6.5 Iterative optimierende Übersetzung --;6.6 Zusammenfassung --;7 Praktische Ergebnisse --;7.1 Der Sather-K Übersetzer --;7.2 Testprogramme --;7.3 Messungen --;7.4 Speichereffizienz von?-Termen --;7.5 Vergleich zu anderen Übersetzern --;7.6 Diskussion --;8 Zusammenfassung --;Literatur --;A Entscheidungsdiagramme --;A.1 Geordnete, binäre Entscheidungsdiagramme --;A.2 Größe von OBDDs --;A.3 Symbolisches Rechnen auf OBDDs --;A.4 Effiziente Implementierung --;A.5 Andere Typen von Entscheidungsdiagrammen --;B Beispielprogramme.
Objektorientierung ist eine der wesentlichen Techniken zur Realisierung von Softwaresystemen. Die unbestrittenen Vorteile dieses Ansatzes bei der Modellierung und Implementierung müssen jedoch häufig durch eine geringere Effizienz der so erstellten Programme erkauft werden. Dieses Buch vermittelt moderne Optimierungstechniken, die es Übersetzern für objektorientierte Programmiersprachen wie Sather, Java oder C♯ ermöglichen, automatisch effizientere ausführbare Programme zu erzeugen. Ausgehend von den speziellen Anforderungen an die Optimierung objektorientierter Programme werden in einem ganzheitlichen Ansatz geeignete übersetzerinterne Programmrepräsentationen, Algorithmen für deren globale Analyse und zielgerichtete Programmtransformationen zur Effizienzsteigerung vermittelt.