Property Probes: Live Exploration of Source Code Analysis

Source code analysis is ubiquitous in the development of software tools, for example in compilers to detect compile-time errors and possible optimizations, inIDEs to provide interactive coding assistance, and in stand-alone analysis tools todetect bugs. There are several techniques that have been developed to help theanalysis developer, including one called Reference Attribute Grammars (RAGs).With RAGs, the developer specifies functionality for their analysis as a set of highlevel equations. The concern of how to apply the equations is abstracted away,and handled by a RAG evaluation system. This abstraction can enable more concise and efficient implementations, but also calls for adequate debugging tools.When things break down, being able to see how things execute in terms of theseabstractions helps the developer identify and fix issues.The aim of this thesis is to provide source code analysis developers with a live,exploratory view of the inner workings of their analyses. We are particularly interested in helping developers using the RAG formalism. In this thesis, we introducethe concept of property probes to support this goal. Property probes enable efficient and robust interaction with computation associated with nodes on abstractsyntax trees (ASTs). The different kinds of probes, and associated algorithms forcreating and applying them, are presented in this thesis. We also present benchmarks showing that performance scales well for real-world development tasks.We have implemented property probes in a tool called CODEPROBER. CODEPROBER has been integrated into two university courses on compilers and programanalysis, as an aid during lab assignments. We wanted to determine the use- anduser experience of the students that used it, and to this end we performed a mixedmethod user study with students from the program analysis course. The focus ofthe study is a set of in-person interviews, and the overall feedback from studentshas been very positive.

Publication Details

Journal
Lund University Publications (Lund University)
Published
2024-10-09
Primary Topic
History of Computing Technologies
Type
article
Field-Weighted Citation Impact
0.00

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Property Probes: Live Exploration of Source Code Analysis

Lund University Publications (Lund University)
History of Computing Technologies
article

Property Probes: Live Exploration of Source Code Analysis

article en

Abstract

Source code analysis is ubiquitous in the development of software tools, for example in compilers to detect compile-time errors and possible optimizations, inIDEs to provide interactive coding assistance, and in stand-alone analysis tools todetect bugs. There are several techniques that have been developed to help theanalysis developer, including one called Reference Attribute Grammars (RAGs).With RAGs, the developer specifies functionality for their analysis as a set of highlevel equations. The concern of how to apply the equations is abstracted away,and handled by a RAG evaluation system. This abstraction can enable more concise and efficient implementations, but also calls for adequate debugging tools.When things break down, being able to see how things execute in terms of theseabstractions helps the developer identify and fix issues.The aim of this thesis is to provide source code analysis developers with a live,exploratory view of the inner workings of their analyses. We are particularly interested in helping developers using the RAG formalism. In this thesis, we introducethe concept of property probes to support this goal. Property probes enable efficient and robust interaction with computation associated with nodes on abstractsyntax trees (ASTs). The different kinds of probes, and associated algorithms forcreating and applying them, are presented in this thesis. We also present benchmarks showing that performance scales well for real-world development tasks.We have implemented property probes in a tool called CODEPROBER. CODEPROBER has been integrated into two university courses on compilers and programanalysis, as an aid during lab assignments. We wanted to determine the use- anduser experience of the students that used it, and to this end we performed a mixedmethod user study with students from the program analysis course. The focus ofthe study is a set of in-person interviews, and the overall feedback from studentshas been very positive.

Lund University Publications (Lund University)
Stiftelsen för Strategisk Forskning
Openalex Percentile: Top 37%
History of Computing Technologies
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Property Probes: Live Exploration of Source Code Analysis · Lund University Publications (Lund University) (2024) | TGRS Research Map | TGRS