Download PDFOpen PDF in browser

Discovering Specifications for Unknown Procedures - Work in Progress

16 pagesPublished: June 22, 2012

Abstract

We study automated verification of pointer safety for heap-manipulating imperative programs with unknown procedure calls or code pointers. Given the specification of a procedure whose body contains calls to an unknown procedure, we try to infer the possible specifications for the unknown procedure from its calling contexts. We employ a forward shape analysis with separation logic and an abductive inference mechanism to synthesize both pre- and postconditions for the unknown procedure. The inferred specification is a partial specification of the unknown procedure. Therefore it is subject to a later verification when the code or the complete specification for the unknown procedure are available. Our inferred specifications can also be used for program understanding.

In: Andrei Voronkov, Laura Kovacs and Nikolaj Bjorner (editors). WING 2010. Workshop on Invariant Generation 2010, vol 1, pages 76-91.

BibTeX entry
@inproceedings{WING2010:Discovering_Specifications_Unknown_Procedures,
  author    = {Florian Craciun and Chenguang Luo and Guanhua He and Shengchao Qin and Wei-Ngan Chin},
  title     = {Discovering Specifications for Unknown Procedures - Work in Progress},
  booktitle = {WING 2010. Workshop on Invariant Generation 2010},
  editor    = {Andrei Voronkov and Laura Kovacs and Nikolaj Bjorner},
  series    = {EPiC Series in Computing},
  volume    = {1},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/Wf},
  doi       = {10.29007/wkvm},
  pages     = {76-91},
  year      = {2012}}
Download PDFOpen PDF in browser