Virtual functions make code easier for programmers to reuse but also make it harder for compilers to analyze. We investi-gate the ability of three static analysis algorithms to improve C++ programs by resolving virtual function calls, thereby reducing compiled code size and reducing program complex-ity so as to improve both human and automated program understanding and analysis. In measurements of seven pro-grams of significant size (5000 to 20000 lines of code each) we found that on average the most precise of the three algo-rithms resolved 71 % of the virtual function calls and reduced compiled code size by 25%. This algorithm is very fast: it analyzes 3300 source lines per second on an 80 MHz Pow-erPC 601. Because of its accuracy and spe...
The limited ability of compilers to nd the parallelism in programs is a signi cant barrier to the us...
Abstract-Several defenses have increased the cost of traditional, low-level attacks that corrupt con...
When assessing the quality and maintainability of large C++ code bases, tools are needed for extract...
1 Introduction A major advantage of object-oriented languages is abstraction. The most important lan...
Gaining the code re-use advantages of object oriented programming requires dynamic function binding,...
In this dissertation, we show how a relatively simple and extremely fast interprocedural optimizatio...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Just like the release of the Clang compiler, the advent of LLVM in the field of static code analysis...
C++ has a well-deserved reputation for power and flexibility. It has an equally well-deserved reputa...
The complexity of software grows every year, and while there are many programming techniques and new...
We present a new approach using data flow techniques to solve compile analysis problems for language...
© 2017 Association for Computing Machinery. We present, Vip, an approach to boosting the precision o...
We investigate the computational power of C++ compilers. In particular, it is known that any partial...
Many existing systems are written in C and are not re-entrant or thread safe. Sometimes these system...
The limited ability of compilers to nd the parallelism in programs is a signi cant barrier to the us...
Abstract-Several defenses have increased the cost of traditional, low-level attacks that corrupt con...
When assessing the quality and maintainability of large C++ code bases, tools are needed for extract...
1 Introduction A major advantage of object-oriented languages is abstraction. The most important lan...
Gaining the code re-use advantages of object oriented programming requires dynamic function binding,...
In this dissertation, we show how a relatively simple and extremely fast interprocedural optimizatio...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Just like the release of the Clang compiler, the advent of LLVM in the field of static code analysis...
C++ has a well-deserved reputation for power and flexibility. It has an equally well-deserved reputa...
The complexity of software grows every year, and while there are many programming techniques and new...
We present a new approach using data flow techniques to solve compile analysis problems for language...
© 2017 Association for Computing Machinery. We present, Vip, an approach to boosting the precision o...
We investigate the computational power of C++ compilers. In particular, it is known that any partial...
Many existing systems are written in C and are not re-entrant or thread safe. Sometimes these system...
The limited ability of compilers to nd the parallelism in programs is a signi cant barrier to the us...
Abstract-Several defenses have increased the cost of traditional, low-level attacks that corrupt con...
When assessing the quality and maintainability of large C++ code bases, tools are needed for extract...