• 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