<div class="csl-bib-body">
<div class="csl-entry">Kaindlstorfer, D. M. (2023). <i>Enhancing abstraction and symbolic execution for shape analysis of C-programs operating on linked lists</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2023.109623</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2023.109623
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/153681
-
dc.description.abstract
Diese Arbeit beschreibt Verbesserungen für das statische Analysetool Broom. Broom analysiert Programmteile eines C-Programmes und beweist, dass es frei von Speicherfehlern ist. Im Besonderen ist Broom in der Lage, Programme, die mit verschiedenen Varianten von verketteten Listen arbeiten, zu analysieren. Falls Broom das Eingabeprogramm als sicher klassifiziert, erzeugt es für jede Funktion eine Menge an Zusicherungen, die in einer bestimmten Form von Separation Logic definiert werden.Broom ist derzeit noch ein Prototyp und die Komplexität der Listen, die analysiert werden können, ist begrenzt. Deshalb wurde der Abstraktionsalgorithmus von Broom im Rahmen dieser Arbeit so erweitert, dass er auch Listen unterstützt, bei denen jeder Knoten einen Zeiger auf ein gemeinsames Objekt hat. Diese Verbesserung ist praktisch relevant, da diese Listen gerne in systemnahen Code verwendet werden. Darüber hinaus beschäftigt sich diese Arbeit mit dem Problem der Explosion des Zustandsraumes bei der Analyse komplexerer Funktionen. Es wurde in weiterer Folge eine Prozedur implementiert, die diesen Zustandsraum so beschneidet, dass die Zahl der Zusicherungen für eine Funktion signifikant reduziert wird. Besipielsweise führt diese Verbesserung dazu, dass die Zahl der Zusicherungen, die für eine Funktion, die über eine verschachtelte Liste iteriert, von 400 auf zwei reduziert wird. Als Konsequenz konnte die Dauer der Analyse des entsprechenden Codes auf vier Minuten reduziert werden,während die Analyse vor der Implementierung der Verbesserungen praktisch unmöglich war.
de
dc.description.abstract
This thesis describes improvements of the static analyser Broom. Broom can analyse fragments of programs written in the programming language C proving the absence of memory bugs. Specifically, the tool supports programs operating on different kinds of linked lists. If Broom considers the input program as safe, it generates for each function a set of contracts, which are defined in a special flavour of Separation Logic. Broom is still a prototype and the complexity of the lists that can be analysed is limited.To this end we extended Broom’s abstraction procedure such that also lists with pointers to shared non-global heap objects, which are common in system code, can be analysed. Additionally we tackled the state space explosion problem, which may occur when Broom analyses more complex functions. We implemented a pruning strategy that significantly reduces the number of contracts for these functions. This improvement allowed us to reduce the number of contracts that would be generated for a function traversing a nested list from over 400 to two. This results in an analysis of the respective code within approximately four minutes while analysing this code was practically infeasible before the pruning was implemented.
en
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Static Analysis
de
dc.subject
Shape Analysis
de
dc.subject
Program Verification
en
dc.subject
Static Analysis
en
dc.subject
Shape Analysis
en
dc.subject
Symbolic Execution
en
dc.subject
Separation Logic
en
dc.title
Enhancing abstraction and symbolic execution for shape analysis of C-programs operating on linked lists
en
dc.type
Thesis
en
dc.type
Hochschulschrift
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.identifier.doi
10.34726/hss.2023.109623
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
David Michael Kaindlstorfer
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
tuw.publication.orgunit
E192 - Institut für Logic and Computation
-
dc.type.qualificationlevel
Diploma
-
dc.identifier.libraryid
AC16774943
-
dc.description.numberOfPages
35
-
dc.thesistype
Diplomarbeit
de
dc.thesistype
Diploma Thesis
en
dc.rights.identifier
In Copyright
en
dc.rights.identifier
Urheberrechtsschutz
de
tuw.advisor.staffStatus
staff
-
tuw.advisor.orcid
0000-0003-1468-8398
-
item.languageiso639-1
en
-
item.openairetype
master thesis
-
item.grantfulltext
open
-
item.fulltext
with Fulltext
-
item.cerifentitytype
Publications
-
item.mimetype
application/pdf
-
item.openairecristype
http://purl.org/coar/resource_type/c_bdcc
-
item.openaccessfulltext
Open Access
-
crisitem.author.dept
E194-01 - Forschungsbereich Software Engineering
-
crisitem.author.parentorg
E194 - Institut für Information Systems Engineering