h1

h2

h3

h4

h5
h6


001     708116
005     20241022103933.0
024 7 _ |a HT019515646
|2 HBZ
024 7 _ |a 36624
|2 Laufende Nummer
024 7 _ |a 10.18154/RWTH-2017-09657
|2 datacite_doi
037 _ _ |a RWTH-2017-09657
041 _ _ |a English
082 _ _ |a 530
100 1 _ |0 P:(DE-588)1147613036
|a Jansen, Christina
|b 0
|u rwth
245 _ _ |a Static Analysis of Pointer Programs - Linking Graph Grammars and Separation Logic
|c vorgelegt von Diplom-Informatikerin Christina Maria Jansen
|h online
246 _ 3 |a Statische Analyse von Zeigerprogrammen - Integration von Graphgrammatiken und Separation Logic
|y German
260 _ _ |a Aachen
|c 2017
300 _ _ |a 1 Online-Ressource (xi, 286 Seiten) : Diagramme
336 7 _ |0 2
|2 EndNote
|a Thesis
336 7 _ |0 PUB:(DE-HGF)11
|2 PUB:(DE-HGF)
|a Dissertation / PhD Thesis
|b phd
|m phd
336 7 _ |2 BibTeX
|a PHDTHESIS
336 7 _ |2 DRIVER
|a doctoralThesis
336 7 _ |2 DataCite
|a Output Types/Dissertation
336 7 _ |2 ORCID
|a DISSERTATION
500 _ _ |a Veröffentlicht auf dem Publikationsserver der RWTH Aachen University
502 _ _ |a Dissertation, RWTH Aachen University, 2017
|b Dissertation
|c RWTH Aachen University
|d 2017
|g Fak01
|o 2017-10-19
520 3 _ |a In dieser Dissertation wird ein Framework zur abstrakten Analyse von Zeigerprogrammen vorgestellt, dessen Einsatzgebiet prozedurale, rekursive und nebenläufige Programme umfasst. Den Grundstein des Frameworks bildet eine auf Hypergraphen basierende Repräsentation des Heaps. Hypergraphen stellen eine Verallgemeinerung von herkömmlichen Graphen dar, in der Kanten beliebig viele Knoten verbinden können und eine Beschriftung tragen. Durch diese Generalisierung bringen Hypergraphen alle notwendigen Voraussetzungen zur Heapabstraktion mit: Während Kanten zwischen zwei Knoten als Zeiger aufgefasst werden, fungieren alle übrigen Kanten als Platzhalter. Diese Platzhalter können durch Heapteile ersetzt werden, deren Struktur von sogenannten Hyperedge Replacement-Grammatiken formal beschrieben wird. Konkretisierung und Abstraktion der Heaprepräsentation entspricht der Anwendung von Produktionsregeln der Grammatik: eine Rückwärtsanwendung abstrahiert den Heap, während eine Vorwärtsanwendung einer Konkretisierung entspricht. Im ersten Teil der Dissertation werden die formalen Voraussetzungen für die Heaprepräsentation sowie ihrer Konkretisierung und Abstraktion geschaffen. Auf dieser Grundlage wird ein Ansatz zur Analyse von nicht-prozeduralen Zeigerprogrammen vorgestellt. Dazu werden alle Anforderungen an Hyperedge Replacement-Grammatiken erarbeitet, die für eine korrekte und terminierende Konkretisierung und Abstraktion nötig sind. Weiterhin wird die Konstruktion einer äquivalenten, diese Eigenschaften erfüllenden Grammatik adressiert. Der zweite Teil der Dissertation schlägt eine Brücke in Form eines beidseitigen Übersetzungsalgorithmus zwischen Hyperedge Replacement-Grammatiken und dem symbolic heap-Fragment der Separation Logic. Neben dem Korrektheitsbeweis der Übersetzung werden die Gegenstücke der Anforderungen an Hyperedge Replacement-Grammatiken aus dem ersten Teil für die Separation Logic definiert und ihre Erhaltung während der Übersetzung bewiesen. Die hergestellte Beziehung zwischen Separation Logic und Hyperedge Replacement-Grammatiken bildet den Grundstein für die Erweiterung des Analyseframeworks. Im letzten Teil dieser Dissertation wird das Spektrum der analysierbaren Zeigerprogramme auf prozedurale sowie nebenläufige Programme ausgedehnt. Dazu bedienen wir uns des Konzepts der Contracts, die bereits im Bereich der Zeigerprogrammanalyse mithilfe von Separation Logic erfolgreich eingesetzt werden. Ein Contract bildet ein Paar aus Vor- und Nachbedingung, wobei die Nachbedingung den Effekt einer Prozedur oder eines Threads auf die Vorbedingung erfasst. Damit erlaubt er eine modulare Analyse von Programmen auf Prozedur- bzw. Threadebene. Um auch im Fall von nebenläufigen Programmen Threads unabhängig voneinander untersuchen zu können, werden zusätzlich so genannte Permissions, d.h. Berechtigungen zum Lesen oder Schreiben von Teilen des Heaps, eingeführt. Auch hier handelt es sich um ein Konzept, das für die Separation Logic etabliert ist. Das Hauptresultat des letzten Dissertationsteils besteht in der Erarbeitung eines neuartigen Ansatzes, der zu einem Zeigerprogramm sowohl Prozedur- als auch (Permission-annotierte) Threadcontracts automatisiert generiert.
|l ger
520 _ _ |a This thesis presents a sound abstraction framework for the static analysis of pointer programs, which is able to handle (recursive) procedures as well as concurrency. The framework builds on a graph representation of the heap using so-called hypergraphs. In these graphs edges are labelled and can be connected to arbitrarily many vertices. Understanding edges between two vertices as pointers and the remaining edges as placeholders for parts of the heap, hypergraphs feature the necessary concepts for heap abstraction. More concretely, edge labels are used to specify the shape of the heap that is abstracted. Hyperedge replacement grammars formalise this mapping. That is, they define the data structures each of the labels represents. Concretisation and abstraction of heaps then directly correspond to forward and backward application of production rules of the hyperedge replacement grammar, respectively. The first part of the thesis lays the formal foundation for hypergraph-based heap representation and its concretisation and abstraction. Utilising this, an analysis approach for non-procedural pointer programs is presented. Additionally, we make requirements of hyperedge replacement grammars that are crucial for the soundness and termination of concretisation and abstraction. It is shown that each hyperedge replacement grammar can be transformed such that it satisfies these requirements. In the second part of the thesis, a bridge between hyperedge replacement grammars and the symbolic heap fragment of Separation Logic is built. In particular, a translation procedure between both formalisms is given and proven correct. Additionally, we provide the Separation Logic counterparts of the requirements determined in the preceding part and show that they are preserved by the translation. The relationship between Separation Logic and hyperedge replacement grammars inspired the extension to a framework that modularly handles procedures and fork-join-concurrency. That is, in the last part of the thesis we adopt the concept of contracts, i.e. pairs consisting of a pre- and a postcondition that capture the effect of a procedure or thread execution, to obtain procedure and thread modular analyses, respectively. In the latter case, we additionally introduce permissions to hypergraphs. They constitute a concept which is, similarly to contracts, well-understood for Separation Logic. Permissions provide transferable access grants to heap parts and enable the analysis of threads independently of each other. As a main contribution of the procedural and concurrent program analysis, a novel approach for automated derivation of procedure and (permission-enriched) thread contracts is presented.
|l eng
536 _ _ |0 G:(EU-Grant)287767
|a CARP - Correct and Efficient Accelerator Programming (287767)
|c 287767
|f FP7-ICT-2011-7
|x 0
588 _ _ |a Dataset connected to Lobid/HBZ
591 _ _ |a Germany
653 _ 7 |a heap abstraction
653 _ 7 |a heap manipulation
653 _ 7 |a hyperedge replacement grammar
653 _ 7 |a separation logic
653 _ 7 |a static analysis
700 1 _ |0 P:(DE-82)IDM00048
|a Katoen, Joost-Pieter
|b 1
|e Thesis advisor
700 1 _ |0 P:(DE-82)IDM01580
|a Noll, Thomas
|b 3
|e Thesis advisor
700 1 _ |a Huisman, Marieke
|b 2
|e Thesis advisor
856 4 _ |u https://publications.rwth-aachen.de/record/708116/files/708116.pdf
|y OpenAccess
856 4 _ |u https://publications.rwth-aachen.de/record/708116/files/708116_source.zip
|y Restricted
909 C O |o oai:publications.rwth-aachen.de:708116
|p dnbdelivery
|p ec_fundedresources
|p VDB
|p driver
|p open_access
|p openaire
914 1 _ |y 2017
915 _ _ |a OpenAccess
|0 StatID:(DE-HGF)0510
|2 StatID
920 1 _ |0 I:(DE-82)120000_20140620
|k 120000
|l Fachgruppe Informatik
|x 1
920 1 _ |0 I:(DE-82)121310_20140620
|k 121310
|l Lehrstuhl für Informatik 2 (Softwaremodellierung und Verifikation)
|x 0
980 _ _ |a I:(DE-82)120000_20140620
980 _ _ |a I:(DE-82)121310_20140620
980 _ _ |a UNRESTRICTED
980 _ _ |a VDB
980 _ _ |a phd
980 1 _ |a FullTexts


LibraryCollectionCLSMajorCLSMinorLanguageAuthor
Marc 21