Automatische Komplexitätsanalyse mittels Transformationen
Automated Complexity Analysis via Transformations
Wissenschaftsdisziplinen
Informatik (70%); Mathematik (30%)
Keywords
-
Computer Science,
Program Analysis,
Runtime Complexity,
Term Rewriting,
Logic,
Symbolic Computation
Dieses Projekt behandelt die Komplexitätsanalyse von Programmen. Dies ist ein überaus wichtiges Thema, da die Komplexiät einen Programmes gewissermaßen seine Nützlichkeit bestimmt. Wir sind hier an einer automatischen Analyse interessiert, die wie eine "Knopfdruck"-Technik funktioniert: Wir drücken einen Knopf und das Tool gibt uns detailiert Auskunft über die Komplexität des Eingabeprogramms. Darüberhinaus sind wir an einer statisches Analyse interessiert und trachten danach existierende Programmiersprachen behandeln zu können, nicht nur künstliche Sprachkonstrukte. In den letzten Jahren hat es vielfältige Zugänge zur automatischen Analyse von Programmkomplexität gegeben, etwa im Bereich von eingebetteten Systemen, oder in Korrektheitsbeweisen von Programmbibliotheken. Der erste Anwendungsbereich kann motiviert werden, wenn man sich ein kleines Programm vorstellt, dass auf einem Smartphone effizient funktionieren soll. Jede unnötige Resourcenverschwendung muss vermieden beziehungsweise entdeckt werden, bevor das Programm weltweit verbreitet wird. In diesem Projekt werden wir das folgende Ziel verfolgen: "Erweiterung des derzeitigen Wissensstandes zur Analyse von Programmen. Dazu werden wir automatische Laufzeitkomplexitätsanalysen betrachten, die mittels Transformationen funktionieren." Das heißt wir werden keinen direkten Zugang versuchen, sonderen mit Hilfe von Programmtransformationen vorgehen: Zuerst übersetzen wir das Eingabeprogramm in ein Termersetzungssystem und dann verwenden wir die im Rahmen des Projekes entwickelten Methoden zur (automatischen) Komplexitäts-analyse von Termersetzungsssystemen. In dieser Weise können wir den einfachen und eleganten Zugang von Termersetzungssystemen verwenden. Wir betrachten die Analogie zur SAT Technologie. Im Prinzip ist die Frage, ob eine propositionale Formel erfüllbar ist, nur von theoretischem Interesse. Nach bahnbrechenden Ergebnissen zu dieser Frage ist der derzeitige Stand der Forschung aber, dass SAT Technologie eine sehr mächtiges Arsenal für Techniken des Suchens liefert. Kaum eine ad-hoc problemspezifische Lösung liefert bessere Ergebnisse als die Verwendung von existierenden SAT Werkzeugen. Es ist unsere Vision, dass Termersetzung eine ähnliche Schlüsseltechnologie im Rahmen der Programmanalyse werden kann. Wir erwarten dass die Forschung in diesem Projekt den Stand der Forschung zur Komplexitätsanalyse von Programmen erweitern wird. Das Projekt wird den Erkenntnisstand zu automatischen Transformationmethoden deutlich verbessern, sowie neue Erkenntnisse im Bereich der Komplexitätsanalyse von Termersetzungssystemen hervorbringen. Darüberhinaus wird das Projekt im Besonderen Einfluß auf die Forschung im Bereich der amortisierten Kostenanalyse, der statischen Programmanalyse nehmen, sowie im Allgemeinen die Gebiete der impliziten Komplexitätstheorie, sowie der Beweistheorie positiv beeinflußen. Zusammmenfassend kann man sagen, dass uns dieses Projekt einen Schritt näher an eine "Knopfdruck"-Technik heranführt, die die Komplexitätsanalyse von realististen und sehr großen Programmen erlaubt.
Das ACAT Projekt beschäftigte sich mit der Verifikation von Software. Genauer wurden neue und hervorragend funktionierende Methode entwickelt, um automatisch feststellen zu können, ob ein untersuchter Softwarebaustein oder ein Computerprogramm innerhalb einer bestimmten Resourcenschranke ausgeführt werden kann. Dies ist ein überaus wichtiges Thema für die Informationstechnologie, da der Resourcenverbrauch eines Computerprogrammes gewissermaßen seine Nützlichkeit bestimmt. Wir sind hier an einer automatischen Analyse interessiert, die wie eine Knopfdruck- Technik funktioniert: Wir drücken einen Knopf und das Tool gibt uns detailliert Auskunft über den Resourcenverbrauch des Eingabeprogrammes. Darüberhinaus sind wir an einer statisches Analyse interessiert, das heißt an einer Analyse die bereits während der Entwicklungsphase der Software verwendet werden kann. Diese Analyse erweitert bestehende Methoden des Profilings von Programmen. Außerdem haben wir uns mit echten Programmen existierenden Programmiersprachen beschäftigt, um zukünftige praktische Anwendungen vorzubereiten.HauptresultateIm Rahmen des Projektes haben wir Methoden entwickelt, die es uns erlauben Computerprogramme, die in verschiedensten Anwendungsgebieten eingesetzt werden mit einer uniformen statischen Methode auf ihren Zeitaufwand und Speicherbedarf hin zu untersuchen. Dies gilt sowohl für sogenannte imperative Programme, deren Aufbau einer eindeutigen Befehlstruktur folgen, wie für deklarative Programme, die abstrakter formuliert sind und deshalb oftmals kürzer gehalten werden können. Die Hauptzahl der derzeit existierenden Software ist im imperativen Stil verfasst, allerdings existiert seit einigen Jahren ein starker Trend Richtung deklarativer Programmierung. Unsere Methoden und im Besonderen das da- rauf aufbauende Analysewerkzeug TCT sind einzigartig in ihrer universellen Anwendbarkeit. Diese Universalität zeigt sich auch deutlich in internationalen Wettbewerben, bei denen TCT immer als eines der allgemeinsten Analysewerkzeuge überzeugt. Im Rahmen der ersten FLoC Olympic Games, abgehalten im Rahmen des Vienna Summer of Logic 2014, hat TCT eine prestigeträchtig Kurt Gödel Medaille gewonnen.Methodologie Unser Ansatz zur Programmanalyse verwendet Programmtransformationen. Zuerst abstrahieren wir das Eingabeprogramm zu einem formal leicht zu beschreibenden Regelsystem (einem Termersetzungssystem), um anschließend bestehende Analysemethoden für Termersetzungssysteme verwenden zu können. Durch diese Methode können wir den einfachen und eleganten Zugang von Termersetzungssystemen verwenden. Darüberhinaus begründet dieser Zugang die universelle Anwendbarkeit von TCT.Fakten Das ACAT Projekt war ein Einzelforschungprojekt der Grundlagenforschung im Bereich der theoretischen Informatik und der Logik. Es wurde von Georg Moser koordiniert.
- Universität Innsbruck - 100%
- Johannes Waldmann, Hochschule für Technik, Wirtschaft und Kultur - Deutschland
- Tobias Nipkow, Technische Universität München - Deutschland
- Jean-Yves Marion, INRIA Lorraine - Frankreich
- Guillaume Bonfante, Université de Lorraine - Frankreich
- Elvira Albert, Universidad Complutense de Madrid - Spanien
- Aaron Stump, University of Iowa - Vereinigte Staaten von Amerika
Research Output
- 138 Zitationen
- 28 Publikationen
-
2019
Titel Parametrized bar recursion: a unifying framework for realizability interpretations of classical dependent choice DOI 10.1093/logcom/exv056 Typ Journal Article Autor Powell T Journal Journal of Logic and Computation Seiten 519-554 -
2016
Titel The complexity of interaction DOI 10.1145/2837614.2837646 Typ Conference Proceeding Abstract Autor Gimenez S Seiten 243-255 Link Publikation -
2016
Titel Interaction automata and the ia2d interpreter. Typ Journal Article Autor Gimenez S Journal Proceedings of the 1st FSCD -
2016
Titel The complexity of interaction DOI 10.1145/2914770.2837646 Typ Journal Article Autor Gimenez S Journal ACM SIGPLAN Notices Seiten 243-255 Link Publikation -
2016
Titel Kruskal's Tree Theorem for Acyclic Term Graphs DOI 10.4204/eptcs.225.5 Typ Journal Article Autor Moser G Journal Electronic Proceedings in Theoretical Computer Science Seiten 25-34 Link Publikation -
2015
Titel The Complexity of Interaction (Long Version) DOI 10.48550/arxiv.1511.01838 Typ Preprint Autor Gimenez S -
2015
Titel Analysing the Complexity of Functional Programs: Higher-Order Meets First-Order (Long Version) DOI 10.48550/arxiv.1506.05043 Typ Preprint Autor Avanzini M -
2015
Titel On the Computational Content of Termination Proofs DOI 10.1007/978-3-319-20028-6_28 Typ Book Chapter Autor Moser G Verlag Springer Nature Seiten 276-285 -
2015
Titel Leftmost outermost revisited. Typ Journal Article Autor Hirokawa N Journal Proceedings of the 26th RTA -
2017
Titel Bar recursion over finite partial functions DOI 10.1016/j.apal.2016.11.003 Typ Journal Article Autor Oliva P Journal Annals of Pure and Applied Logic Seiten 887-921 Link Publikation -
2017
Titel A proof theoretic study of abstract termination principles DOI 10.48550/arxiv.1706.03577 Typ Preprint Autor Powell T -
2016
Titel The complexity of interaction. Typ Conference Proceeding Abstract Autor Gimenez S Konferenz Proceedings of the 7th DICE -
2016
Titel Kruskal's Tree Theorem for Acyclic Term Graphs DOI 10.48550/arxiv.1609.03642 Typ Preprint Autor Moser G -
2016
Titel Complexity of Acyclic Term Graph Rewriting DOI 10.4230/lipics.fscd.2016.10 Typ Conference Proceeding Abstract Autor Avanzini M Konferenz LIPIcs, Volume 52, FSCD 2016 Seiten 10:1 - 10:18 Link Publikation -
2016
Titel Gödel's functional interpretation and the concept of learning DOI 10.1145/2933575.2933605 Typ Conference Proceeding Abstract Autor Powell T Seiten 136-145 -
2020
Titel Dependent choice as a termination principle DOI 10.1007/s00153-019-00706-6 Typ Journal Article Autor Powell T Journal Archive for Mathematical Logic Seiten 503-516 -
2019
Titel A proof-theoretic study of abstract termination principles DOI 10.1093/logcom/exz026 Typ Journal Article Autor Powell T Journal Journal of Logic and Computation Seiten 1345-1366 Link Publikation -
2014
Titel Amortised Resource Analysis and Typed Polynomial Interpretations DOI 10.1007/978-3-319-08918-8_19 Typ Book Chapter Autor Hofmann M Verlag Springer Nature Seiten 272-286 -
2016
Titel TcT: Tyrolean Complexity Tool DOI 10.1007/978-3-662-49674-9_24 Typ Book Chapter Autor Avanzini M Verlag Springer Nature Seiten 407-423 -
2015
Titel Analysing the complexity of functional programs: higher-order meets first-order DOI 10.1145/2858949.2784753 Typ Journal Article Autor Avanzini M Journal ACM SIGPLAN Notices -
2015
Titel Analysing the complexity of functional programs: higher-order meets first-order DOI 10.1145/2784731.2784753 Typ Conference Proceeding Abstract Autor Avanzini M Seiten 152-164 Link Publikation -
2015
Titel Multivariate amortised resource analysis for term rewrite systems. Typ Journal Article Autor Hofmann M Journal Proceedings of the 13th TLCA -
2015
Titel Higher-order complexity analysis: Harnessing first-order tools. Typ Conference Proceeding Abstract Autor Avanzini M Konferenz Proceedings of 6th DICE, 2015 -
2014
Titel Amortised Resource Analysis and Typed Polynomial Interpretations (extended version) DOI 10.48550/arxiv.1402.1922 Typ Preprint Autor Hofmann M -
2014
Titel A complexity preserving transformation from Jinja Bytecode to rewrite systems. Typ Conference Proceeding Abstract Autor Moser G Konferenz Proceedings of the 1st WPTE -
2018
Titel From Jinja bytecode to term rewriting: A complexity reflecting transformation DOI 10.1016/j.ic.2018.05.007 Typ Journal Article Autor Moser G Journal Information and Computation Seiten 116-143 -
0
DOI 10.1145/2784731 Typ Other -
0
Titel Parametrised bar recursion: A unifying framework for realizability interpretations of classical dependent choice. Typ Other Autor Powell T