ACM Home Page
Please provide us with feedback. Feedback
Generating customized verifiers for automatically generated code
Full text PdfPdf (358 KB)
Source
Generative Programming And Component Engineering archive
Proceedings of the 7th international conference on Generative programming and component engineering table of contents
Nashville, TN, USA
SESSION: Technical papers 3 table of contents
Pages 77-88  
Year of Publication: 2008
ISBN:978-1-60558-267-2
Authors
Ewen Denney  NASA Ames, Moffett Field, CA, USA
Bernd Fischer  University of Southampton, Southampton, England UK
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 71,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1449913.1449926
What is a DOI?

ABSTRACT

Program verification using Hoare-style techniques requires many logical annotations. We have previously developed a generic annotation inference algorithm that weaves in all annotations required to certify safety properties for automatically generated code. It uses patterns to capture generator- and property-specific code idioms and property-specific meta-program fragments to construct the annotations. The algorithm is customized by specifying the code patterns and integrating them with the meta-program fragments for annotation construction. However, this is difficult since it involves tedious and error-prone low-level term manipulations.

Here, we describe an approach that automates this customization task using generative techniques. It uses a small annotation schema compiler that takes a collection of high-level declarative annotation schemas tailored towards a specific code generator and safety property, and generates all customized analysis functions and glue code required for interfacing with the generic algorithm core, thus effectively creating a customized annotation inference algorithm. The compiler raises the level of abstraction and simplifies schema development and maintenance. It also takes care of some more routine aspects of formulating patterns and schemas, in particular handling of irrelevant program fragments and irrelevant variance in the program structure, which reduces the size, complexity, and number of different patterns and annotation schemas required. The improvements described here make it easier and faster to customize the system to a new safety property or a new generator, and we demonstrate this by customizing it to certify frame safety of space flight navigation code that was automatically generated from Simulink models by MathWorks' Real-Time Workshop.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
www.mathworks.com/products/rtw/.
 
2
www.mathworks.com/products/polyspace/.
 
3
XML Path Language (XPath) Version 1.0, 1999. www.w3.org/TR/xpath.
4
 
5
 
6
J. Brunel et al. A Foundation for Flow-Based Program Matching Using Temporal Logic and Model Checking. Technical Report 08/2/INFO, Ecole des Mines de Nantes, 2008.
 
7
P. Cousot et al. The Astreé analyzer. In ESOP'05, LNCS 3444, pp. 21---30. Springer, 2005.
 
8
E. Denney and B. Fischer. Correctness of source-level safety policies. In FM'03, LNCS 2805, pp. 894--913. Springer, 2003.
 
9
E. Denney and B. Fischer. Certifiable program generation. In GPCE'05, LNCS 3676, pp. 17--28. Springer, 2005.
10
 
11
 
12
 
13
 
14
 
15
M. J. Harrold and G. Rothermel. Syntax-directed construction of program dependence graphs. Technical Report OSU-CISRC-5/96-TR32, The Ohio State University, 1996.
 
16
L. Kovács and T. Jebelean. Finding Polynomial Invariants for Imperative Loops in the Theorema System. In Proc. IJCAR'06 Workshop Verify'06, pp. 52--67, 2006.
 
17
O. Lee, H. Yang, and K. Yi. Automatic Verification of Pointer Programs Using Grammar-Based Shape Analysis. In ESOP'05, LNCS 3444, pp. 124--240. Springer, 2005.
 
18
19
 
20
J. W. Nimmer and M. D. Ernst. Static verification of dynamically detected invariants: Integrating Daikon and ESC/Java. In First Workshop on Runtime Verification, Elec. Notes in Theoretical Computer Science, 55(2). Elsevier, 2001.
 
21
Stephan Schulz, E - a brainiac theorem prover, AI Communications, v.15 n.2, p.111-126, September 2002
 
22
 
23
D. A. Vallado. Fundamentals of Astrodynamics and Applications. Space Technology Library. Microcosm Press and Kluwer Academic Publishers, second edition, 2001.
24
 
25
 
26
27

Collaborative Colleagues:
Ewen Denney: colleagues
Bernd Fischer: colleagues