Powered by OpenAIRE graph
Found an issue? Give us feedback
Surrey Research Insi...arrow_drop_down
Surrey Research Insight
Doctoral thesis . 2024
License: CC BY NC SA
Data sources: Datacite
addClaim

Dual-Channel Software Analysis

Authors: Petrescu, Constantin Cezar;

Dual-Channel Software Analysis

Abstract

The increasing complexity of modern software poses significant challenges for maintenance. For instance, the Chromium browser, an open-source version of Chrome, consists of 27 million lines of code. Developers of such large codebases increasingly rely on software analysis tools to maintain software quality. There is a need for a fundamentally different approach to software analysis that aims to scale to large applications while remaining accurate. <br>Code consists of two interacting channels: algorithmic channel (code instructions) aimed at machines and natural language channel (identifiers and comments) targeted at human co-developers. Software analysis tools have long focused on improving the algorithmic channel, ignoring intent hints in the natural language channel. Dual-channel approaches can make the software analysis lightweight and scalable using novel representations of program semantics drawn upon the natural language channel. To address this gap, we propose a novel approach to software analysis that harnesses the information in both channels to enhance precision and scalability. <br>This thesis explores novel forms of program analysis that leverage the accord or discord between the two channels. The precision of the software analysis can be improved with intent hints. We show that dual-channel information can be used to check if explicit type conversions are used judiciously. The discord between identifiers and the types of variables allows our approach to identifying poor programming and naming practices. <br>Furthermore, we propose an extension of Call Graphs called Natural Call Graphs, whose edges are weighted based on the callee’s importance to the caller. We show that these weights can be used to identify relevant functions missed by testing. The scalability of these approaches is demonstrated by utilising lightweight techniques in their implementation. Natural Call Graphs present a novel perspective over intermediate representation that can minimise the cost of program analysis by guiding analysis to important parts of the application.

Country
United Kingdom
Related Organizations
Keywords

Program Analysis, Dual-Channel Research, C++ Type Conversions, Integration Testing, Call Graphs

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Upload OA version
Are you the author of this publication? Upload your Open Access version to Zenodo!
It’s fast and easy, just two clicks!