Comparing Mutation Testing at the Levels of Source Code and Compiler Intermediate Representation

Author(s):  
Farah Hariri ◽  
August Shi ◽  
Vimuth Fernando ◽  
Suleman Mahmood ◽  
Darko Marinov
2020 ◽  
Author(s):  
Eddie C. Davis

This research presents an intermediate compiler representation that is designed for optimization, and emphasizes the temporary storage requirements and execution schedule of a given computation to guide optimization decisions. The representation is expressed as a dataflow graph that describes computational statements and data mappings within the polyhedral compilation model. The targeted applications include both the regular and irregular scientific domains. The intermediate representation can be integrated into existing compiler infrastructures. A specification language implemented as a domain specific language in C++ describes the graph components and the transformations that can be applied. The visual representation allows users to reason about optimizations. Graph variants can be translated into source code or other representation. The language, intermediate representation, and associated transformations have been applied to improve the performance of differential equation solvers, or sparse matrix operations, tensor decomposition, and structured multigrid methods.


2021 ◽  
Author(s):  
Jenifer Tabita Ciuciu-Kiss ◽  
Melinda Tóth ◽  
István Bozó

Static source code analyser tools are operating on an intermediate representation of the source code that is usually a tree or a graph. Those representations need to be updated according to the different versions of the source code. However, the developers might be interested in the changes or might need information about previous versions, therefore, keeping different versions of the source code analysed by the tools are required. RefactorErl is an open-source static analysis and transformation tool for Erlang that uses a graph representation to store and manipulate the source code. The aim of our research was to create an extension of the Semantic Program Graph of RefactorErl that is able to store different versions of the source code in a single graph. The new method resulted in 30% memory footprint decrease compared to the available workaround solutions.


2006 ◽  
Vol 16 (4-5) ◽  
pp. 547-582 ◽  
Author(s):  
OLIN SHIVERS ◽  
DAVID FISHER

It is possible to extend the basic notion of “function call” to allow functions to have multiple return points. This turns out to be a surprisingly useful mechanism. This article conducts a fairly wide-ranging tour of such a feature: a formal semantics for a minimal $\lambda$-calculus capturing the mechanism; motivating examples; monomorphic and parametrically polymorphic static type systems; useful transformations; implementation concerns and experience with an implementation; and comparison to related mechanisms, such as exceptions, sum-types and explicit continuations. We conclude that multiple-return function call is not only a useful and expressive mechanism, at both the source-code and intermediate-representation levels, but also quite inexpensive to implement.


2020 ◽  
Vol 10 (5) ◽  
pp. 1692 ◽  
Author(s):  
Xin Li ◽  
Lu Wang ◽  
Yang Xin ◽  
Yixian Yang ◽  
Yuling Chen

Vulnerability is one of the root causes of network intrusion. An effective way to mitigate security threats is to discover and patch vulnerabilities before an attack. Traditional vulnerability detection methods rely on manual participation and incur a high false positive rate. The intelligent vulnerability detection methods suffer from the problems of long-term dependence, out of vocabulary, coarse detection granularity and lack of vulnerable samples. This paper proposes an automated and intelligent vulnerability detection method in source code based on the minimum intermediate representation learning. First, the sample in the form of source code is transformed into a minimum intermediate representation to exclude the irrelevant items and reduce the length of the dependency. Next, the intermediate representation is transformed into a real value vector through pre-training on an extended corpus, and the structure and semantic information are retained. Then, the vector is fed to three concatenated convolutional neural networks to obtain high-level features of vulnerability. Last, a classifier is trained using the learned features. To validate this vulnerability detection method, an experiment was performed. The empirical results confirmed that compared with the traditional methods and the state-of-the-art intelligent methods, our method has a better performance with fine granularity.


2012 ◽  
Author(s):  
Tom Busey ◽  
Chen Yu ◽  
Francisco Parada ◽  
Brandi Emerick ◽  
John Vanderkolk

2019 ◽  
Vol 2 (1) ◽  
pp. 1-16
Author(s):  
Nana Suarna
Keyword(s):  

Seiring waktu, jumlah surat dalam sebuah perusahaan semakin hari makin banyak, sehingga muncul permasalahan dalam mengelolanya administrasi suarat, baik ketika dalam pencatatan surat maupun proses disposisi, serta pada saat pencarian arsip surat. Hampir sebagai besar surat yang ada di kantor-kantor masih disimpan dalam bentuk file-file yang masih bersifat manual, sehingga memungkinkan surat tersebut menunpuk, dan memerlukan waktu yang lama dalam pencarian dan pemrosesannya. Dengan dibangunnya  sistem manajemen pengarsipan bertujuan untuk mengatasi permasalahan-permasalahan tersebut di atas. Pemrograman  saat ini, baik desktop maupun web based, semakin marak  pengerjaannya menggunakan framework code igniter berbasis PHP. Framework CI memang dikembangkan untuk memudahkan dalam developing aplikasi dengan struktur  file source code-nya menggunakan pendekatan Models-Views-Controller (MVC) dan pemrograman berorientasi objek, oleh sebab itu penulis menggunakan CI dalam developing aplikasi ini. Aplikasi sistem manajemen surat dan pengarsipan ini dapat diakses dalam internal perusahaan web, yang bertujuan untuk memudahkan karyawan  dalam pengelolaan dan  mengaksesnya surat menyurat, selain itu aplikasi ini juga memberikan kemudahan dalam proses pencatatan surat,  disposisi, dan proses pencarian sehingga aplikasisi ini memiliki performa yang handal, mudah untuk di-maintenance dan dikembangkan lebih lanjut seiring perkembangan kebutuhan penggunanya.


Author(s):  
Himanshi Vashisht ◽  
Sanjay Bharadwaj ◽  
Sushma Sharma

Code refactoring is a “Process of restructuring an existing source code.”. It also helps in improving the internal structure of the code without really affecting its external behaviour”. It changes a source code in such a way that it does not alter the external behaviour yet still it improves its internal structure. It is a way to clean up code that minimizes the chances of introducing bugs. Refactoring is a change made to the internal structure of a software component to make it easier to understand and cheaper to modify, without changing the observable behaviour of that software component. Bad smells indicate that there is something wrong in the code that have to refactor. There are different tools that are available to identify and emove these bad smells. A software has two types of quality attributes- Internal and external. In this paper we will study the effect of clone refactoring on software quality attributes.


Sign in / Sign up

Export Citation Format

Share Document