Results 1  10
of
70
The WAMDefinition and Compiler Correctness
, 1995
"... : This paper provides a mathematical analysis of the Warren Abstract Machine for executing Prolog and a correctness proof for a general compilation scheme of Prolog for the WAM. Starting from an abstract Prolog model which is close to the programmer's intuition, we derive the WAM methodically b ..."
Abstract

Cited by 75 (13 self)
 Add to MetaCart
: This paper provides a mathematical analysis of the Warren Abstract Machine for executing Prolog and a correctness proof for a general compilation scheme of Prolog for the WAM. Starting from an abstract Prolog model which is close to the programmer's intuition, we derive the WAM methodically by stepwise refinement of Prolog models, proving correctness and completeness for each refinement step. Along the way we explicitely formulate, as proof assumptions, a set of natural conditions for a compiler to be correct, thus making our proof applicable to a whole class of compilers. The proof method provides a rigorous mathematical framework for the study of Prolog compilation techniques. It can be applied in a natural way to extensions and variants of Prolog and related WAMs allowing for parallelism, constraint handling, types, functional componentsin some cases it has in fact been successfully extended. Our exposition assumes only a general understanding of Prolog. We reach full mathemati...
The ASM ground model method as a foundation of requirements engineering
 Verification: Theory and Practice, volume 2772 of LNCS
, 2003
"... Abstract. Building ground models is one of the three constituents of the engineering method for computerbased systems which is known as Abstract State Machine (ASM) method [16]. In this note we characterize ground models, whose epistemological role for a foundation of system design resembles the on ..."
Abstract

Cited by 23 (9 self)
 Add to MetaCart
Abstract. Building ground models is one of the three constituents of the engineering method for computerbased systems which is known as Abstract State Machine (ASM) method [16]. In this note we characterize ground models, whose epistemological role for a foundation of system design resembles the one Aristotle assigned to axioms to ground science in reality, avoiding infinite regress. We explain how ASM ground models help to resolve two major problems of requirements engineering, providing means a) to obtain for complex computerbased systems an adequate understanding by humans, and b) to cope with everchanging requirements by faithfully capturing and tracing them via welldocumented modeling–for–change. We point out that via an appropriate refinement method one can relate ground models to executable code. 1 IINTRODUCTION In a recent paper [6] Daniel Berry identifies requirements engineering as the main source for “the inevitable pain of software development”, explaining “why there
Why Combine Logics?
 STUDIA LOGICA
, 1995
"... Combining logics has become a rapidly expanding enterprise that is inspired mainly by concerns about modularity and the wish to join together tailored made logical tools into more powerful but still manageable ones. A natural ..."
Abstract

Cited by 21 (0 self)
 Add to MetaCart
Combining logics has become a rapidly expanding enterprise that is inspired mainly by concerns about modularity and the wish to join together tailored made logical tools into more powerful but still manageable ones. A natural
An abstract dynamic semantics for C
 Computer Laboratory, University of Cambridge
, 1997
"... This report is a presentation of a formal semantics for the C programming language. The semantics has been defined operationally in a structured semantics style and covers the bulk of the core of the language. ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
(Show Context)
This report is a presentation of a formal semantics for the C programming language. The semantics has been defined operationally in a structured semantics style and covers the bulk of the core of the language.
Communicating Evolving Algebras
 Computer Science Logic
, 1993
"... . We develop the first steps of a theory of concurrency within the framework of evolving algebras of Gurevich, with the aim of investigating its suitability for the role of a general framework for modeling concurrent computation. As a basic tool we introduce a `modal' logic of transition rules ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
. We develop the first steps of a theory of concurrency within the framework of evolving algebras of Gurevich, with the aim of investigating its suitability for the role of a general framework for modeling concurrent computation. As a basic tool we introduce a `modal' logic of transition rules and runs, which is, in the context of evolving algebras, just a definitional extension of ordinary first order logic. A notion of independence of rules and runs enables us to introduce a notion of (and notation for) concurrent runs, on which a logical theory of (`true') concurrency may be based. The notion of concurrent run also has (but does not depend on) an interleaving interpretation. Some basic constructs (concurrent composition, addition of guards and updates) and some derived constructs (internal and external choice, sequential composition) on evolving algebras are introduced and investigated. The power of the framework is demonstrated by developing simple and transparent evolving algebra ...
Abstract State Machine Semantics of SDL
 JOURNAL OF UNIVERSAL COMPUTER SCIENCE
, 1997
"... Based on the ITUT Recommendation Z.100 [27]also known as SDL92 we de ne a formal semantic model of the dynamic properties of Basic SDL in terms of an abstract SDL machine. More precisely, we use the concept of multiagent realtime ASM [17] as a semantic platform on top of which we construct our ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
(Show Context)
Based on the ITUT Recommendation Z.100 [27]also known as SDL92 we de ne a formal semantic model of the dynamic properties of Basic SDL in terms of an abstract SDL machine. More precisely, we use the concept of multiagent realtime ASM [17] as a semantic platform on top of which we construct our mathematical description. The resulting interpretation model is not only mathematically precise but also reflects the common understanding of SDL in a direct and intuitive manner; it provides a concise and understandable representation of the complete dynamic semantics of Basic SDL. Moreover, the model can easily be extended and modified  a particularly important issue for an evolving technical standard. In this article, we consider all relevant aspects concerning the behavior of channels, processes and timers with respect to signal transfer operations and timer operations. The model we obtain is intended as a basis for formal documentation as well as for
Prolog's Control Constructs in a Functional . . .
 INTERNATIONAL JOURNAL OF FOUNDATIONS OF COMPUTER SCIENCE
"... The purpose of this article is twofold. First, we show that Prolog's control constructs can be smoothly integrated into a functional language like Haskell. The resulting `language', termed embedded Prolog, incorporates many of the features prescribed by the Prolog ISO standard: control ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
The purpose of this article is twofold. First, we show that Prolog's control constructs can be smoothly integrated into a functional language like Haskell. The resulting `language', termed embedded Prolog, incorporates many of the features prescribed by the Prolog ISO standard: control constructs including the cut, all solution collecting functions, and error handling facilities. Embedded Prolog lacks some concepts such as logical variables but it inherits all of Haskell's strengths, eg static polymorphic typing, higher order functions etc. Technically, the integration is achieved using monads and monad transformers. One of the main innovations is the de nition of a backtracking monad transformer, which allows us to combine backtracking with exception handling and interaction. Second, we work towards an axiomatization of the operations, through which the computational features are accessed. Equations are used to lay down the meaning of the various operations and their interrelations enabling the programmer to reason about programs in a simple calculational style. The axiomatization is applied to show that each nite computation has a simple canonical form.
Correctness proof for the WAM with types
 Computer Science Logic, volume 626 of LNCS
, 1992
"... : We provide a mathematical specification of an extension of Warren's Abstract Machine for executing Prolog to typeconstraint logic programming and prove its correctness. In this paper, we keep the notion of types and dynamic type constraints rather abstract to allow applications to different ..."
Abstract

Cited by 12 (5 self)
 Add to MetaCart
(Show Context)
: We provide a mathematical specification of an extension of Warren's Abstract Machine for executing Prolog to typeconstraint logic programming and prove its correctness. In this paper, we keep the notion of types and dynamic type constraints rather abstract to allow applications to different constraint formalisms like Prolog III or CLP(R). This generality permits us to introduce modular extensions of Borger's and Rosenzweig 's formal derivation of the WAM. Starting from typeconstraint Prolog algebras that are derived from Borger's standard Prolog algebras, the specification of the typeconstraint WAM extension is given by a sequence of evolving algebras, each representing a refinement level. For each refinement step a correctness proof is given. Thus, we obtain the theorem that for every such abstract typeconstraint logic programming system L and for every compiler satisfying the specified conditions, the WAM extension with an abstract notion of types is correct w.r.t. L. This is a ...
A Model for Mathematical Analysis of Functional Logic Programs and Their Implementations
, 1994
"... Introduction We extend the core Prolog model of [2] to a model for the functional logic programming language BABEL [8] by adding, to Prolog's backtracking structure, rules for the reduction of functional expressions to normal form. Then we define six typical provably correct refinements which ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Introduction We extend the core Prolog model of [2] to a model for the functional logic programming language BABEL [8] by adding, to Prolog's backtracking structure, rules for the reduction of functional expressions to normal form. Then we define six typical provably correct refinements which are directed towards implementation of functional logic programs: structure sharing for expressions, explicit computation of the normal form condition, embedding of the backtracking tree into a stack, localization of the normal form computation for expressions (introducing local environments for computation of subexpressions) together with some optimizations in IBAM [6], a (graph) narrowing machine actually implementing innermost BABEL. Thus the machinery of [2,3] for mathematical description and analysis of logic programs, is linked to functional logic programs and their implementation on machines which typically combine the WAM [9] with features from reduction machines [4] for functi
ASMBased Mechanized Verification of Compiler BackEnds
"... We describe an approach to mechanically prove the correctness of BURS specifications and show how such a tool can be connected with BURS based backend 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 11 (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 backend 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 BURSrules 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.