A Tool to Support Formal Reasoning about Computer Languages
نویسنده
چکیده
A tool to support formal reasoning about computer languages and spe-ciic language texts is described. The intention is to provide a tool that can build a formal reasoning system in a mechanical theorem prover from two speciications, one for the syntax of the language and one for the semantics. A parser, pretty-printer and internal representations are generated from the former. Logical representations of syntax and semantics, and associated theorem proving tools, are generated from the combination of the two speciications. The main aim is to eliminate tedious work from the task of prototyping a reasoning tool for a computer language, but the abstract speciications of the language also assist the automation of proof.
منابع مشابه
Web Service Choreography Verification Using Z Formal Specification
Web Service Choreography Description Language (WS-CDL) describes and orchestrates the services interactions among multiple participants. WS-CDL verification is essential since the interactions would lead to mismatches. Existing works verify the messages ordering, the flow of messages, and the expected results from collaborations. In this paper, we present a Z specification of WS-CDL. Besides ve...
متن کاملMixed Lazy/Strict Graph Semantics
Explicitly enforcing strictness is often used by functional programmers as an important tool for making applications fit time and space efficiency requirements. Few functional programmers however, are familiar with the consequences of explicitly enforcing strictness for formal reasoning about their programs. Some “folklore” knowledge has emerged but this is based on experience rather than on ri...
متن کاملProof Tool Support for Explicit Strictness
In programs written in lazy functional languages such as for example Clean and Haskell, the programmer can choose freely whether particular subexpressions will be evaluated lazily (the default) or strictly (must be specified explicitly). It is widely known that this choice affects program behavior, resource consumption and semantics in several ways. However, not much experience is available abo...
متن کاملReasoning with Executable Speciications
Starting from the speciication of a small imperative programming language, and the description of two program transformations on this language, we formally prove the correctness of these transformations. The formal speciications are given in a single format, and can be compiled into both executable tools and collections of deenitions to reason about into a theorem prover. This work is a case st...
متن کاملA Computing Medley on Program Verification, Specification and Automated Reasoning
A brief overview of the science of formal program verification is presented, a topic close to the heart of Derrick Kourie to whom this article is dedicated in honour of his sixtieth birthday. No account would do justice to this topic without referring to the well-known FloydHoare axiomatic approach to the verification and construction of programs. The specification of a program in terms of a pr...
متن کامل