Title
Formal validation of pattern matching code
Abstract
When addressing the formal validation of generated software, two main alternatives consist either to prove the correctness of compilers or to directly validate the generated code. Here, we focus on directly proving the correctness of compiled code issued from powerful pattern matching constructions typical of ML like languages or rewrite based languages such as ELAN, Maude or Tom. In this context, our first contribution is to define a general framework for anchoring algebraic pattern-matching capabilities in existing languages like C, Java or ML. Then, using a just enough powerful intermediate language, we formalize the behavior of compiled code and define the correctness of compiled code with respect to pattern-matching behavior. This allows us to prove the equivalence of compiled code correctness with a generic first-order proposition whose proof could be achieved via a proof assistant or an automated theorem prover. We then extend these results to the multi-match situation characteristic of the ML like languages. The whole approach has been implemented on top of the Tom compiler and used to validate the syntactic matching code of the Tom compiler itself.
Year
DOI
Venue
2006
10.4230/OASIcs.TrustworthySW.2006.697
Dagstuhl Seminars
Keywords
Field
DocType
algebraic pattern-matching capability,syntactic matching code,automated theorem prover,multi-match,compilation,verified code,code correctness,powerful intermediate language,formal validation,pattern-matching behavior,term rewriting,tom compiler,powerful pattern,proof assistant,pattern matching,first order,intermediate language,theorem prover
Programming language,Computer science,Correctness,Automated theorem proving,Compiler,Code generation,Compiled language,Theoretical computer science,Java,Pattern matching,Proof assistant
Conference
Volume
ISBN
Citations 
3
1-59593-090-6
7
PageRank 
References 
Authors
0.70
17
3
Name
Order
Citations
PageRank
Claude Kirchner120511.89
Pierre-etienne Moreau259840.40
Antoine Reilles31196.79