|
Instrumentation of C/C++ Programs during Compilation
Mušková, Kateřina ; Peringer, Petr (referee) ; Smrčka, Aleš (advisor)
This thesis presents design and implementation of the TforcTool offering compile-time instrumentation of memory access and functions. The tool is built on an existing static instrumenting tool Tforc, which was extended in order to provide greater usability and functionality. The advantage of this solution compared to another compile-time tools is that there is no need to change current compile structure of project.
|
|
Automatic Forward Slicing of Programs
Patrik, Nikolas ; Vojnar, Tomáš (referee) ; Malík, Viktor (advisor)
Táto práca popisuje návrh a implementáciu nového riešenie pre nástroj DiffKemp na automatické dopredné prerezávanie programov. Po zdĺhavej analýze súčasného riešenia, sme sa rozhodli súčasné riešenie ponechať a rozšíriť ho o zopár vylepšení. Implementovali sme rozšírenie ktoré dovoľuje DiffKempu vykonávať analýzu nad prvkami štrukturovaných typov, pridali sme k súčasnému prerezávaciemu kritériu aj hodnotu premennej a na záver pridali podporu na analýzu parametrov modulov jadra. Po implementovaní týchto vylepšení sme vykonali experimenty ktoré potvrdili zlepšenie analýzi ktorú DiffKemp vykonával.
|
|
Retargeting of the C language compiler
Pončák, Matej ; Macho, Tomáš (referee) ; Petyovský, Petr (advisor)
In order to program a target architecture in one of the high-level programming languages, the compiler must support that architecture. The thesis describes the structure of SDCC and LLVM compilers and the procedure of retargeting these compilers. The SDCC compiler is widespread among programmers for its simplicity and the LLVM compiler for its great reusability. Finally, this procedure is implemented for the HCS08 series microprocessor in the LLVM compiler.
|
|
Automatic Generation of Test Cases from Data-Flow
Kraut, Daniel ; Fiedor, Tomáš (referee) ; Smrčka, Aleš (advisor)
This thesis deals with automatic generation of test cases on Unit testing level for source codes in C language. In order to achieve automatization are used methods of approach to software as a Data-flow of variables. There is outlined a process of creating tests here as well as a function of CSP solvers which are necessary part of solving this problems. Static code analysis is accessed with LibTooling libraring as part of a compiler front-end project Clang. Output of a developed application are provided here which is automatically generated input values for test cases.
|
|
Alias Analysis in C Compiler
Bolvanský, Dávid ; Zachariášová, Marcela (referee) ; Hruška, Tomáš (advisor)
This thesis is dedicated to the problem of alias analysis and possibilities of its improvement in the LLVM framework. The goal of this thesis is to improve the accuracy, which was achieved by extending the existing implementation of Andresen algorithm to be field sensitive. The terms related to alias analysis and algorithms of the alias analysis available in LLVM are explained. These algorithms are compared according to their base idea, features, and limitations. The implementation of the field sensitivity has been tested using compiler test suites. Its impact on program compilation speed and performance has been analyzed. The measured results show an increase in the accuracy of alias analysis in the LLVM framework.
|
|
Analysis of C Code for Testing of Decompilation
Dítě, Viktor ; Kolář, Dušan (referee) ; Matula, Peter (advisor)
The goal of this thesis is to extend framework for creation of regression tests with new functionality for analysis of C code. This framework is created in Python language and uses clang compiler for analysis of source code. The thesis contains description of area of reverse engineering and decompiler developed in AVG company. Then the area of software testing and C language are briefly introduced. Following chapters describe proposed and implemented extensions. These extensions are presented in sample tests. Summary of the results can be found in conclusion.
|
|
Extraction of Control Flow Graph from LLVM IR Format
Kondula, Václav ; Šoková, Veronika (referee) ; Smrčka, Aleš (advisor)
This Bachelor's thesis deals with design and implementation of control flow graphs extraction from source files in C and C++ language to LLVM IR format. The extractor was implemented as a standalone tool using the LibTooling interface of the Clang compiler. Output of this tool follows the requirements of platform Testos, so it can be used for automated generation of test requirements based on specified coverage criteria.
|
|
Automatic Generation of Test Cases from Data-Flow
Kraut, Daniel ; Fiedor, Tomáš (referee) ; Smrčka, Aleš (advisor)
This thesis deals with automatic generation of test cases on Unit testing level for source codes in C language. In order to achieve automatization are used methods of approach to software as a Data-flow of variables. There is outlined a process of creating tests here as well as a function of CSP solvers which are necessary part of solving this problems. Static code analysis is accessed with LibTooling libraring as part of a compiler front-end project Clang. Output of a developed application are provided here which is automatically generated input values for test cases.
|
|
Grammatical Evolution in Software Optimization
Pečínka, Zdeněk ; Minařík, Miloš (referee) ; Sekanina, Lukáš (advisor)
This master's thesis offers a brief introduction to evolutionary computation. It describes and compares the genetic programming and grammar based genetic programming and their potential use in automatic software repair. It studies possible applications of grammar based genetic programming on automatic software repair. Grammar based genetic programming is then used in design and implementation of a new method for automatic software repair. Experimental evaluation of the implemented automatic repair was performed on set of test programs.
|
| |