Results 11 - 20
of
22
More Advice on Proving a Compiler Correct: Improve a Correct Compiler
, 1994
"... This paper is a condensed version of the author's PhD thesis [19]. Besides the compiler for the im- perative language described in this paper, the thesis derives implementations of a simple functional and a simple logic programming language ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
This paper is a condensed version of the author's PhD thesis [19]. Besides the compiler for the im- perative language described in this paper, the thesis derives implementations of a simple functional and a simple logic programming language
ASM-Based Mechanized Verification of Compiler Back-Ends
"... We describe an approach to mechanically prove the correctness of BURS specifications and show how such a tool can be connected with BURS based back-end generators [9]. The proofs are based on the operational semantics of both source and target system languages specified by means of Abstract Stat ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
We describe an approach to mechanically prove the correctness of BURS specifications and show how such a tool can be connected with BURS based back-end generators [9]. The proofs are based on the operational semantics of both source and target system languages specified by means of Abstract State Machines [14]. In [27] we decomposed the correctness condition based on these operational semantics into local correctness conditions for each BURS rule and showed that these local correctness conditions can be proven independently. The specification and verification system PVS is used to mechanicaly verify BURS-rules based on formal representations of the languages involved. In particular, we have defined PVS proof strategies which enable an automatic verification of the rules. Using PVS, several erroneous rules have been found. Moreover, from failed proof attempts we were able to correct them.
Action Semantics Reasoning About Functional Programs
- Mathematical Structures in Computer Science
, 1996
"... syntax The algebraic definition of abstract syntax trees below can, more or less, be read as a BNF grammar. Emphatic brackets, [[: : : ]], indicate nodes in an abstract syntax tree. grammar: ffl Expression = Identifier "true" "false" [[ "" Identifier "." Expression ]] [[ Expression Expression ]] ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
syntax The algebraic definition of abstract syntax trees below can, more or less, be read as a BNF grammar. Emphatic brackets, [[: : : ]], indicate nodes in an abstract syntax tree. grammar: ffl Expression = Identifier "true" "false" [[ "" Identifier "." Expression ]] [[ Expression Expression ]] [[ "rec" Identifier "." Expression ]] [[ "if" Expression "then" Expression "else" Expression ]] . Action semantics reasoning about functional programs 3 ffl Identifier = [[ letter + ]] . 2.2. Semantic functions Action semantic descriptions are syntax-directed in the denotational style: compositional semantic functions map abstract syntax into meaning and are defined inductively by semantic equations. There is one universal semantic domain, namely action, the sort of actions. Actions are expressed in a notation that looks a little like informal English prose but, in fact, it is a completely formal combinator-based notation. The verbose notation should be suggestive of the meaning of th...
Basic Action Theory
- BRICS Report Series
, 1995
"... Action semantics is a semantic description framework with very good pragmatic properties but until now a rather weak theory for reasoning about programs. A strong action theory would have a great practical potential, as it would facilitate reasoning about the large class of programming languages ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Action semantics is a semantic description framework with very good pragmatic properties but until now a rather weak theory for reasoning about programs. A strong action theory would have a great practical potential, as it would facilitate reasoning about the large class of programming languages that can be described in action semantics.
Verifying Compilers and ASMs or ASMs for uniform description of multistep transformations
, 2000
"... A verifying compiler ensures that the compiled code is always correct but the compiler may also terminate with an error mesage and then fails to generate code. We argue that with respect to compiler correctness this is the best possible result which can be achieved in practice. Such a compiler m ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
A verifying compiler ensures that the compiled code is always correct but the compiler may also terminate with an error mesage and then fails to generate code. We argue that with respect to compiler correctness this is the best possible result which can be achieved in practice. Such a compiler may even include unverified code provided the results of such code can be proven correct independently from how they are generated. We then show how abstract state machines (ASMs) can be used to uniformly describe the dynamic semantics of the programs being compiled across the various intermediate transformation steps occurring within a compiler. Besides being a convenient tool for describing dynamic semantics the fact that we do not have to switch between di#erent descriptional methods is found to be extremely useful.
Reasoning with Actions
- Dept. of Computer Science, Univ. of Aarhus
"... Action semantics is a semantic description framework with very good pragmatic properties but a rather weak theory for reasoning about programs. A strong action theory would be of great practical use, however. It would make it possible to reason about the large class of programming languages that can ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Action semantics is a semantic description framework with very good pragmatic properties but a rather weak theory for reasoning about programs. A strong action theory would be of great practical use, however. It would make it possible to reason about the large class of programming languages that can be described in action semantics. This paper develops the foundations for a richer action theory, by bringing together concepts and techniques from testing theory for processes and from work on operational reasoning about functional programs. Semantic preorders and equivalences in the action semantics setting are studied and a useful operational technique for establishing testing equivalences is presented. 1 Introduction In this paper we develop a richer theory for reasoning about programs in action semantics (AS). Because AS is a general semantic description framework, our work has a great practical scope. A strong action theory would offer techniques for reasoning about programs in any p...
Specifying Asynchronous Transfer of Control
, 1991
"... Semantic Algebras #Mos82#, is to allow descriptions of realistic programming languages. It uses the Action Notation to specify elementary actions and techniques for combining them. Actions are objects which when performed process information and are used to represent semantics of programs. Actions c ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Semantic Algebras #Mos82#, is to allow descriptions of realistic programming languages. It uses the Action Notation to specify elementary actions and techniques for combining them. Actions are objects which when performed process information and are used to represent semantics of programs. Actions can be combined using the action combinators to derive a compositional semantics. Actions are classi#ed into the following facets: 1# Control 2# Functional 3# Declarative 4# Imperative and 5# Communicative. We give a brief and informal introduction to the above facets. The control actions include complete, diverge, fail, escape, commit. complete is an action that always terminates, while diverge never terminates. The fail action indicates abortive termination and is used to abandon the current alternative. The commit action corresponds to cutting away all alternatives, while escape corresponds to raising an exception. The combinators include or, and, and then and trap. or represents non-de...
A Semantic Approach to the Solution of the Legacy Code Problem
- Victorian University of Wellington
, 1997
"... . This work proposes a semantic approach to the legacy code problem and presents preliminary results based on a working prototype. A functional specification of the source code is obtained by means of the semantic specification of the language in which it is written. The specification is then tr ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
. This work proposes a semantic approach to the legacy code problem and presents preliminary results based on a working prototype. A functional specification of the source code is obtained by means of the semantic specification of the language in which it is written. The specification is then translated into an object oriented language. Both tasks are achieved by means of transformation tools. Keywords: transformation systems, denotational semantics, compiler generation, software reengineering, software reuse. Resumo. O presente trabalho prop~oe uma abordagem semantica para a soluc~ao do problema do legacy code e apresenta resultados preliminares baseados em um prot'otipo. Uma espicificac~ao funcional do c'odigo fonte 'e obtida por meio da descric~ao semantica da linguagem na qual est'a escrito. Esta espicificac~ao 'e ent~ao traduzida para uma linguagem orientada a objetos. Ambas as tarefas s~ao realizadas pelo uso de ferramentas de transformac~ao. Palavras-Chave: sistema...
Abstract Interpretation and Attribute Grammars
, 1992
"... The objective of this thesis is to explore the connections between abstract interpretation and attribute grammars as frameworks in program analysis. Abstract interpretation is a semantics-based program analysis method. A large class of data flow analysis problems can be expressed as non-standard sem ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
The objective of this thesis is to explore the connections between abstract interpretation and attribute grammars as frameworks in program analysis. Abstract interpretation is a semantics-based program analysis method. A large class of data flow analysis problems can be expressed as non-standard semantics where the “meaning ” contains information about the runtime behaviour of programs. In an abstract interpretation the analysis is proved correct by relating it to the usual semantics for the language. Attribute grammars provide a method and notation to specify code generation and program analysis directly from the syntax of the programming language. They are especially used for describing compilation of programming languages and very efficient evaluators have been developed for subclasses of attribute grammars. By relating abstract interpretation and attribute grammars we obtain a closer connection between the specification and implementation of abstract interpretations which at the same time facilitates the correctness proofs of interpretations. Implementation and specification of abstract interpretations using circular attribute grammars is realised with an evaluator system for a class of domain theoretic attribute grammars. In this system thecircularity of attribute grammars is resolved by fixpoint iteration. The use of finite lattices in abstract interpretations requires automatic generation of specialised fixpoint iterators. This is done using a technique called lazy fixpoint iteration which is presented in the thesis. Methods from abstract interpretation can also be used in correctness proofs of attribute grammars. This proof technique introduces a new class of attribute grammars based on domain theory. This method is illustrated with examples. i ii SUMMARY
Grammars of Syntactical Functions
"... : This draft 1 provides the most recent collection of definitions and explanations on the GSF formalism. The basic motivation for this draft has been to provide the formal base and the intuitive introduction for GSFs as required in the context of the system LDL. Thus, certain aspects like comparis ..."
Abstract
- Add to MetaCart
: This draft 1 provides the most recent collection of definitions and explanations on the GSF formalism. The basic motivation for this draft has been to provide the formal base and the intuitive introduction for GSFs as required in the context of the system LDL. Thus, certain aspects like comparison with other formalims, particular questions of implementation are not in the centre of this presentation. Date: 10.11.95 13:51 Contents 1 Overview 2 2 Introduction of GSFs 3 3 Basic formalization 8 4 GSFs as a specification language 13 5 References 18 1 This draft is in an early stage. I would be very grateful for comments. Most of the contents is not my personal achievement but rather newly formulated and assembled presentation of notions, terms and results already earlier published by Gnter Riedewald, Uwe Lmmel and me. However, for insufficiencies and incorrectness in the draft I am responsible only. Ralf Lmmel: Grammars of Syntactical Functions 2 1 Overview Not yet available. 2...

