Download:
|
by A. Pnueli, M. Siegel, E. Singerman
http://www.csl.sri.com/~singermn/tv.ps
Add To MetaCart
Abstract:
Abstract. We present the notion of translation validation as a new approach to the verification of translators (compilers, code generators). Rather than proving in advance that the compiler always produces a target code which correctly implements the source code (compiler verification), each individual translation (i.e. a run of the compiler) is followed by a validation phase which verifies that the target code produced on this run correctly implements the submitted source program. Several ingredients are necessary to set up the-- fully automatic-- translation validation process, among which are: 1. A common semantic framework for the representation of the source code and the generated target code. 2. A formalization of the notion of "correct implementation " as a refinement relation. 3. A syntactic simulation-based proof method which allows to automatically verify that one model of the semantic framework, representing the produced target code, correctly implements another model which represents the source. These, and other ingredients are elaborated in this paper, in which we illustrate the new approach in a most challenging case. We consider a translation (compilation) from the synchronous multi-clock data-flow language Signal to asynchronous (sequential) C-code. 1
Citations
|
1713
|
Statecharts: A Visual Formalism for Complex Systems
– Harel
- 1987
|
|
1345
|
A.: The Temporal Logic of Reactive and Concurrent Systems
– Manna, Pnueli
- 1992
|
|
811
|
Proof-Carrying Code
– Necula
- 1997
|
|
737
|
The temporal logic of actions
– Lamport
- 1994
|
|
368
|
The Existence of Refinement Mappings
– Abadi, Lamport
- 1991
|
|
361
|
Safe kernel extensions without run-time checking
– Necula, Lee
- 1996
|
|
295
|
Temporal Verification of Reactive Systems: Safety
– Manna, Pnueli
- 1995
|
|
189
|
Plaice, “LUSTRE: A declarative language for programming synchronous systems
– Caspi, Pilaud, et al.
- 1987
|
|
138
|
Parallel program design
– Chandy, Misra
- 1988
|
|
41
|
The synchronous programming language ESTEREL: design, semantics, implementation
– Berry, Gonthier
- 1988
|
|
39
|
A platform for combining deductive with algorithmic verification
– Pnueli, Shahar
- 1996
|
|
32
|
Simulations between specifications of distributed systems
– Jonsson
- 1991
|
|
18
|
Temporal verification of simulation and refinement
– Kesten, Manna, et al.
- 1994
|
|
14
|
A Provably Correct Embedded Verifier for the Certification of Safety Critical Software
– Cimatti, Giunchiglia, et al.
- 1997
|
|
4
|
Forward and backward simulations for timing based systems
– Lynch, Vaandrager
- 1991
|
|
2
|
Synchronous programming with event and relations: The SIGNAL language and its semantics
– Benviniste, Guernic, et al.
- 1991
|
|
2
|
Fair synchronous transition systems and their liveness proofs
– Pnueli, Shankar, et al.
- 1998
|