DocumentCode
2769416
Title
A Portable Compiler-Integrated Approach to Permanent Checking
Author
Volanschi, Nic
Author_Institution
mygcc, Grove City Coll., PA
fYear
2006
fDate
18-22 Sept. 2006
Firstpage
103
Lastpage
112
Abstract
Program checking technology is now a mature technology, but is not yet used on a large scale. We identify one cause of this gap in the decoupling of checking tools from the everyday development tools. To radically change the situation, we explore the integration of simple user-defined checks into the core of every development process: the compiler. The checks we implement express constrained reachability queries in the control flow graph taking the form "from x to y avoiding z", where x, y, and z are native code patterns containing a blend of syntactic, semantic and dataflow information. Compiler integration enables continuous checking throughout development, but also a pervasive propagation of checking technology. This integration poses some interesting challenges, but opens up new perspectives. Factorizing analyses between checking and compiling improves both the efficiency and the expressiveness of the checks. Minimalist user properties and language-independent code pattern matching ensure that our approach can be integrated almost for free in any compiler for any language. We illustrate this approach with a full-fledged checking compiler for C. We demonstrate the need for permanent checking by partially analyzing two different releases of the Linux kernel
Keywords
C language; data flow analysis; data flow graphs; partial evaluation (compilers); programming language semantics; reachability analysis; C language; Linux kernel; code patterns; compiler integration; control flow graph; dataflow information; language-independent code pattern matching; permanent checking; portable compiler; program checking; reachability queries; semantic information; syntactic information; Flow graphs; Kernel; Linux; Pattern matching; Program processors; Programming profession; Software engineering; Software performance; Software tools; Usability;
fLanguage
English
Publisher
ieee
Conference_Titel
Automated Software Engineering, 2006. ASE '06. 21st IEEE/ACM International Conference on
Conference_Location
Tokyo
ISSN
1938-4300
Print_ISBN
0-7695-2579-2
Type
conf
DOI
10.1109/ASE.2006.8
Filename
4019566
Link To Document