Current automatic program repair techniques often produce overfitting patches. Such a patch passes the test suite but does not actually repair the bug. In this paper, we propose two techniques to address the patch ove...
详细信息
ISBN:
(纸本)9781538615898
Current automatic program repair techniques often produce overfitting patches. Such a patch passes the test suite but does not actually repair the bug. In this paper, we propose two techniques to address the patch overfitting problem. First, we propose an automatic repair technique that performs syntactic code search to leverage bug-related code from a code database to produce patches that are likely to be correct. Due to the weak and incomplete program specification encoded in the test suite, a patch is still possible to be overfitting. We next propose a patch testing technique which generates test inputs uncovering the semantic differences between a patch and its original faulty program, tests if the patch is overfitting, and if so, generates test cases. Such overfitting-indicative test cases could be added to the test suite to make it stronger.
In this paper we introduce CECOTOOL, a tool that analyzes the energy behavior of alternative collection implementations and provides potentially useful recommendations about good implementation options. We applied it ...
详细信息
ISBN:
(纸本)9781538615898
In this paper we introduce CECOTOOL, a tool that analyzes the energy behavior of alternative collection implementations and provides potentially useful recommendations about good implementation options. We applied it to two real-world software systems from the DaCapo suite [1], Xalan and Tomcat. With no prior knowledge of the application domains, we were able to reduce the energy consumption up to 4.37%.
In this paper we introduce a backward simulation of machine code program and report results of reduction methods of its processing time. It may be efficient to analyze a program by tracing back from the final result f...
详细信息
We survey the use of Abstract State Machines in the area of programminglanguages, namely to define behavioural properties of programs at source, intermediate and machine levels in a way that is amenable to mathematic...
详细信息
Machine learning techniques have been used in compilers to automatically determine which optimizations are best for each method of a program developed in javalanguage to reduce the execution time of the program. Prof...
详细信息
This paper considers the realisation of lambda expressions in java 8 on the basis of a global type inference algorithm, which we have introduced in java-TX. We demonstrate that the java 8 approach has indeed some bene...
详细信息
The proliferation of diverse kinds of programminglanguages and platforms makes it a common need to have the same functionality implemented in different languages for different platforms, such as java for Android appl...
详细信息
The proliferation of diverse kinds of programminglanguages and platforms makes it a common need to have the same functionality implemented in different languages for different platforms, such as java for Android applications and C# forWindows phone applications. Although versions of code written in different languages appear syntactically quite different from each other, they are intended to implement the same software and typically contain many code snippets that implement similar functionalities, which we call cross-language clones. When the version of code in one language evolves according to changing functionality requirements and/or bug fixes, its cross-language clones may also need be changed to maintain consistent implementations for the same functionality. Thus, it is needed to have automated ways to locate and track cross-language clones within the evolving software. In the literature, approaches for detecting cross-language clones are only for languages that share a common intermediate language (such as the .NET language family) because they are built on techniques for detecting single-language clones. To extend the capability of cross-language clone detection to more diverse kinds of languages, we propose a novel automated approach, CLCMiner, without the need of an intermediate language. It mines such clones from revision histories, based on our assumption that revisions to different versions of code implemented in different languages may naturally reflect how programmers change cross-language clones in practice, and that similarities among the revisions (referred to as clones in diffs or diff clones) may indicate actual similar code. We have implemented a prototype and applied it to ten open source projects implementations in both java and C#. The reported clones that occur in revision histories are of high precisions (89% on average) and recalls (95% on average). Compared with token-based code clone detection tools that can treat code as plain texts, o
Web applications have become the primary source of information and transactions over the internet. The number of statistical research organizations, with focused interests in publishing result data on the web, is incr...
详细信息
Empirical studies on fault behaviour in evolving complex software systems have shown that communication structures among the software entities such as classes, modules, software units and communications among them, is...
详细信息
More methods and agent-oriented programminglanguages have been introduced based on the javalanguage is based, we show that C++ is an agent-oriented programming carried by the object-oriented approach, to do so, the ...
详细信息
暂无评论