<div class="csl-bib-body">
<div class="csl-entry">Ilg, L. (2025). <i>CodeDetective: Enabling Isolated Code Execution</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2025.121664</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2025.121664
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/216305
-
dc.description
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft
-
dc.description
Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers
-
dc.description.abstract
In der Softwareentwicklung besteht häufig der Bedarf, gezielt bestimmte Codebereiche zu testen oder zu analysieren, ohne das gesamte Programm auszuführen. Dies wird jedoch schwierig, wenn der ausgewählte Bereich von den umgebenden Definitionen oder dem Kontext abhängt. In dieser Arbeit wird ein statisches Programm-Slicing-Verfahren vorgestellt, das die isolierte Ausführung von Codeausschnitten ermöglicht, die aus größeren Programmen extrahiert wurden. Die vorgestellte Methode identifiziert und rekonstruiert ausschließlich jene Teilmengen des ursprünglichen Codes, die erforderlich sind, um die Semantik eines ausgewählten Bereichs zu bewahren. Dadurch lässt sich das Ergebnis unabhängig vom ursprünglichen Kontext ausführen. Der Ansatz basiert auf einer rekursiven Abhängigkeitsanalyse durch Traversierung des abstrakten Syntaxbaums sowie des Aufrufgraphen. Dabei werden sowohl direkte als auch transitive Beziehungen zwischen Anweisungen aufgelöst. Ein Mechanismus zur Verfolgung von Variablenverwendungen unterscheidet zwischen auflösbaren und nicht auflösbaren Elementen. Letztere werden der Anwenderin oder dem Anwender über typgeprüfte Eingabeaufforderungen präsentiert. Die finale Teilmenge wird mittels topologischer Sortierung und strukturierter Rekonstruktion zu einem ausführbaren Skript umgebaut.Der Ansatz wurde in dem Prototyp-Tool CodeDetective implementiert, das typisierte Python Eingabeprogramme unterstützt und anhand einer Benchmark-Suite mit zehn konzeptionellen Schwierigkeitsgraden evaluiert wurde. Die Evaluierung zeigt, dass das System eine Genauigkeit von über 82% erreicht und damit deutlich besser abschneidet als die Basis-Tools, denen es an Fähigkeiten zur Programmanalyse oder zur Verarbeitung von Benutzereingaben fehlt und lediglich etwa 10% bzw. 30% erreichten. Diese Ergebnisse verdeutlichen das Potenzial des Ansatzes, die isolierte Ausführung von Codeausschnitten zu ermöglichen, selbst wenn die relevanten Abhängigkeiten über den ausgewählten Bereich hinausgehen.
de
dc.description.abstract
In software development, developers often need to test or inspect specific regions of code without running the entire program. However, this becomes difficult when the selected fragment depends on surrounding definitions or context. This thesis presents a static program slicing approach for enabling the isolated execution of code snippets extracted from larger programs. The proposed method identifies and reconstructs only a subset of the original code that is required to preserve the semantics of a selected region, allowing the result to execute independently of its original context. The approach performs recursive dependency analysis by traversing the abstract syntax tree and call graph of the program, resolving both direct and transitive relationships between statements. A variable tracking mechanism distinguishes resolvable elements from unresolved ones, which are presented to the user through type-validated input prompts. The final subset is constructed into an executable script using topological sorting and structured rewriting.The approach was implemented in the prototype tool CodeDetective, which supports typed Python input programs and evaluated on a benchmark suite spanning ten conceptual difficulty levels. The evaluation shows that the system achieves an accuracy score of over 82%, significantly outperforming baseline tools lacking program analysis or interactive input handling, which reached only approximately 10% and 30%. These results highlight the potential of the approach to enable isolated execution of code snippets, even when dependencies span beyond the selected region.
en
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Code Slicing
en
dc.subject
Program Slicing
en
dc.subject
Program Analysis
en
dc.subject
Dependency Analysis
en
dc.subject
Dependency Tracking
en
dc.subject
Isolated Code Execution
en
dc.subject
Static Analysis
en
dc.title
CodeDetective: Enabling Isolated Code Execution
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.2025.121664
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
Luise Ilg
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
tuw.publication.orgunit
E194 - Institut für Information Systems Engineering
-
dc.type.qualificationlevel
Diploma
-
dc.identifier.libraryid
AC17564282
-
dc.description.numberOfPages
102
-
dc.thesistype
Diplomarbeit
de
dc.thesistype
Diploma Thesis
en
dc.rights.identifier
In Copyright
en
dc.rights.identifier
Urheberrechtsschutz
de
tuw.advisor.staffStatus
staff
-
item.openaccessfulltext
Open Access
-
item.grantfulltext
open
-
item.openairecristype
http://purl.org/coar/resource_type/c_bdcc
-
item.fulltext
with Fulltext
-
item.cerifentitytype
Publications
-
item.languageiso639-1
en
-
item.openairetype
master thesis
-
crisitem.author.dept
E194 - Institut für Information Systems Engineering