Results 1  10
of
12
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...
A Mathematical Definition of Full Prolog
, 1994
"... The paper provides a mathematical yet simple model for the full programming language Prolog, as apparently intended by the ISO draft standard proposal. The model includes all control constructs, database operations, solution collecting predicates and error handling facilities, typically ignored by p ..."
Abstract

Cited by 56 (7 self)
 Add to MetaCart
The paper provides a mathematical yet simple model for the full programming language Prolog, as apparently intended by the ISO draft standard proposal. The model includes all control constructs, database operations, solution collecting predicates and error handling facilities, typically ignored by previous theoretical treatments of the language. We add to this the ubiquitous boxmodel debugger. The model directly reflects the basic intuitions underlying the language and can be used as a primary mathematical definition of Prolog. The core of the model has been applied for mathematical analysis of implementations, for clarification of disputable language features and for specifying extensions of the language in various directions. The model may provide guidance for extending the established theory of logic programming to the extralogical features of Prolog. Introduction One of the original aims of mathematical semantics was to provide the programmer with a set of mathematical models and...
ProofTheoretic Foundation of Compilation in Logic Programming Languages
 Proceedings of the Joint International Conference and Symposium on Logic Programming (JICSLP’98
"... Commercial implementations of logic programming languages are engineered Appeared in the Proceedings of the 1998 Joint International Conference and Symposium on Logic Programming  JICSLP'98 (J. Jaffar editor), pp ????, MIT Press, Manchester, UK, 1619 June 1998. around a compiler based o ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Commercial implementations of logic programming languages are engineered Appeared in the Proceedings of the 1998 Joint International Conference and Symposium on Logic Programming  JICSLP'98 (J. Jaffar editor), pp ????, MIT Press, Manchester, UK, 1619 June 1998. around a compiler based on Warren's Abstract Machine (WAM) or a variant of it. In spite of various correctness proofs, the logical machinery relating the prooftheoretic specification of a logic programming language and its compiled form is still poorly understood. In this paper, we propose a logicindependent definition of compilation for logic programming languages. We apply this methodology to derive the first cut of a compiler and the corresponding abstract machine for the language of hereditary Harrop formulas and then for its linear refinement. 1 Introduction Compiled logic programs run over an order of magnitude faster than their interpreted source and constitute therefore a key step to combining the advantages of...
Specification and correctness proof of a WAM extension with type constraints
, 1996
"... We provide a mathematical specification of an extension of Warren's Abstract Machine for executing Prolog to typeconstraint logic programming and prove its correctness. Our aim is to provide a full specification and correctness proof of a concrete system, the PROTOS Abstract Machine (PAM), an ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
We provide a mathematical specification of an extension of Warren's Abstract Machine for executing Prolog to typeconstraint logic programming and prove its correctness. Our aim is to provide a full specification and correctness proof of a concrete system, the PROTOS Abstract Machine (PAM), an extension of the WAM by polymorphic ordersorted unification as required by the logic programming language PROTOSL. In this paper, while leaving the details of the PAM's type constraint representation and solving facilities to a sequel to this work, we keep the notion of types and dynamic type constraints abstract to allow applications to different constraint formalisms like Prolog III or CLP(R). This generality permits us to introduce modular extensions of Börger's and Rosenzweig's formal derivation of the WAM. Since the type constraint handling is orthogonal to the compilation of predicates and clauses, we start from typeconstraint Prolog algebras with compiled AND/OR structure that are der...
Report of the Logic Programming Language PROTOSL
 REVISED VERSION: WORKING PAPER 4, IBM GERMANY, SCIENTIFIC CENTER, INSTITUTE FOR LOGICS AND LINGUISTICS
, 1994
"... PROTOSL is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, highlevel access to external relational databases, and finite domain constraints. The type concept covers user defin ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
PROTOSL is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, highlevel access to external relational databases, and finite domain constraints. The type concept covers user defined sorts, subsort relationships supporting multiple inheritance and parameterized sorts in the form of polymorphism. In addition to relations, also userdefined functions are available. The module concept is similar to that of Modula2 and allows to hide implementation details from the user of a module. Database access and modification is fully embedded in the programming language PROTOSL and can be programmed transparent to the user of a program or a program part. Besides simple links to external relations, nonrecursive as well as recursive function free deduction rules can be defined. PROTOSL also provides an easy way to work with windows via an objectoriented interface to the OSF/Mot...
Computation and specification models. A comparative study
 Department of Computer Science at University of Aarhus
, 2002
"... For each of the principal current models of computation and of highlevel system design, we present a uniform set of transparent easily understandable descriptions, which are faithful to the basic intuitions and concepts of the investigated systems. Our main goal is to provide a mathematical basis fo ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
For each of the principal current models of computation and of highlevel system design, we present a uniform set of transparent easily understandable descriptions, which are faithful to the basic intuitions and concepts of the investigated systems. Our main goal is to provide a mathematical basis for the technical comparison of established models of computation which can contribute to rationalize the scientific evaluation of different system specification approaches in the literature, clarifying in detail their advantages and disadvantages. As a side effect we obtain a powerful yet simple new conceptual framework for teaching the fundamentals of computation theory. 1
A formal specification of PARLOG
 SEMANTICS OF PROGRAMMING LANGUAGES AND MODEL THEORY
, 1993
"... We provide a complete mathematical semantics for the parallel logic programming language PARLOG. This semantics is abstract but nevertheless simple and supports the intuitive operational understanding of programs. It is based on Gurevich's notion of Evolving Algebras ([20]) and is obtained adap ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We provide a complete mathematical semantics for the parallel logic programming language PARLOG. This semantics is abstract but nevertheless simple and supports the intuitive operational understanding of programs. It is based on Gurevich's notion of Evolving Algebras ([20]) and is obtained adapting ideas from the description of full (Sequential) Standard PROLOG in [5] and the specification of imperative parallel computation phenomena of OCCAM developed in [24]. We develope a complete specification of the core of PARLOG which governs the computation of goals by user defined predicates. The builtin predicates can be described as for Standard PROLOG (see [4][6]) and are therefore omitted here. We give an explicit formalization of the two kinds of parallelism occurring in PARLOG: the ANDParallelism and the (orthogonal) ORParallelism. Our description uses an abstract notion of PARLOG terms and PARLOG substitutions which is unburdened by representation details and implementation constraints.
Towards a Mathematical Specification of a GraphNarrowing Machine
, 1994
"... The paper provides a mathematical model for the innermost version of the functional logic programming language BABEL [MR89, MR92] and refines it stepwise towards a mathematical specification of its implementation by a graphnarrowing machine [KLMR90]. Our description directly reflects the basic intu ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
The paper provides a mathematical model for the innermost version of the functional logic programming language BABEL [MR89, MR92] and refines it stepwise towards a mathematical specification of its implementation by a graphnarrowing machine [KLMR90]. Our description directly reflects the basic intuitions underlying the language and can thus be used as a primary mathematical definition of innermost BABEL. For each refinement step a mathematical correctness proof is given, thus paving the way for a correctness proof of the graphnarrowing machine implementation (a full correctness proof could be achieved by providing some further refinement steps, leading to the machine's abstraction level). The specification uses evolving algebras, thus allowing the descriptions to be procedural and nevertheless abstract, readable as `pseudocode over abstract data'.
This document in subdirectoryNS/02/8/
, 909
"... See back inner page for a list of recent BRICS Notes Series publications. Copies may be obtained by contacting: BRICS ..."
Abstract
 Add to MetaCart
See back inner page for a list of recent BRICS Notes Series publications. Copies may be obtained by contacting: BRICS
Under consideration for publication in Formal Aspects of Computing The ASM Refinement Method
"... Abstract. In this paper the Abstract State Machine refinement method is presented. Its characteristics compared to other refinement approaches in the literature are explained. Some frequently occurring forms of ASM refinements are identified and illustrated by examples from the design and verificati ..."
Abstract
 Add to MetaCart
Abstract. In this paper the Abstract State Machine refinement method is presented. Its characteristics compared to other refinement approaches in the literature are explained. Some frequently occurring forms of ASM refinements are identified and illustrated by examples from the design and verification of architectures and protocols, from the semantics and the implementation of programming languages and from requirements engineering. 1.