Results 1  10
of
21
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 54 (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...
From Interpreter to Logic Engine by Defunctionalization
, 2004
"... Starting from a continuationbased interpreter for a simple logic programming language, propositional Prolog with cut, we derive the corresponding logic engine in the form of an abstract machine. The derivation originates in previous work (our article at PPDP 2003) where it was applied to the la ..."
Abstract

Cited by 19 (12 self)
 Add to MetaCart
Starting from a continuationbased interpreter for a simple logic programming language, propositional Prolog with cut, we derive the corresponding logic engine in the form of an abstract machine. The derivation originates in previous work (our article at PPDP 2003) where it was applied to the lambdacalculus. The key transformation here is Reynolds's defunctionalization that transforms a tailrecursive, continuationpassing interpreter into a transition system, i.e., an abstract machine. Similar denotational and operational semantics were studied by de Bruin and de Vink (their article at TAPSOFT 1989), and we compare their study with our derivation. Additionally, we present a directstyle interpreter of propositional Prolog expressed with control operators for delimited continuations.
RML  A New Language and Implementation for Natural Semantics
 PROCEEDINGS OF THE 6TH INTERNATIONAL SYMPOSIUM ON PROGRAMMING LANGUAGE IMPLEMENTATION AND LOGIC PROGRAMMING, PLILP, VOLUME 884 OF LNCS
, 1994
"... RML is a programming language intended for the implementation of Natural Semantics specifications. The basic procedural elements are relations: manytomany mappings defined by a number of axioms or inference rules. It has control flow, logical variables and (explicit) unification as in Prolog; from ..."
Abstract

Cited by 15 (2 self)
 Add to MetaCart
RML is a programming language intended for the implementation of Natural Semantics specifications. The basic procedural elements are relations: manytomany mappings defined by a number of axioms or inference rules. It has control flow, logical variables and (explicit) unification as in Prolog; from ML it borrows a polymorphic type system, data structures, and pattern matching; a facility for separatelycompilable modules also exists. A simple prototype compiler, based on translating RML to ContinuationPassing Style and then to C, has been implemented. Benchmarks indicate that this compiler generates code that is several orders of magnitude faster than Typol, and two times faster than standard Prolog compilers.
Defining Standard Prolog in rewriting logic
 Proc. of the 3rd Int. Workshop on Rewriting Logic and its Applications (WRLA 2000
, 2001
"... The coincidence between the modeltheoretic and the procedural semantics of SLDresolution does not carry over to a Prolog system that also implements nonlogical features like cut and whose depthfirst search strategy is incomplete. The purpose of this paper is to present the key concepts of a new, ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
The coincidence between the modeltheoretic and the procedural semantics of SLDresolution does not carry over to a Prolog system that also implements nonlogical features like cut and whose depthfirst search strategy is incomplete. The purpose of this paper is to present the key concepts of a new, simple operational semantics of Standard Prolog in the form of rewriting rules. We use a novel linear representation of the Prolog tree traversal. A derivation is represented at the level of unification and backtracking. The rewriting system presented here can easily be implemented in a rewriting logic language, giving an executable specification of Prolog. 1
Specifying Prolog Trace Models with a Continuation Semantics
 Lecture Notes in Computer Science: LOPSTR Selected Papers
, 2000
"... Byrd's box model is a fine grained Prolog execution model that can be the basis of high level debugging tools. In this article, we provide a formal specification of Byrd's box model, based on an already existing operational and denotational continuation semantics for Prolog with cut. We show how ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Byrd's box model is a fine grained Prolog execution model that can be the basis of high level debugging tools. In this article, we provide a formal specification of Byrd's box model, based on an already existing operational and denotational continuation semantics for Prolog with cut. We show how this specification can be extended to specify richer Prolog trace models. To be able to experiment with various Prolog trace models, we translate these specifications into Prolog. This translation leads to a Prolog interpreter that performs execution traces. We have hence a formal framework to specify, prototype, and validate trace models for Prolog. 1 Introduction Byrd's box model [9] is a very fine grained Prolog execution model that provides a precise but verbose image of the execution. It is sometimes stated that it should not be used in debuggers. Whether Byrd's trace is a proper output format for an enduser may indeed be discussed. A trace, however, can be the basis of higher ...
Interpreter Prototypes From Formal Language Definitions
, 1993
"... Denotational semantics is now used widely for the formal definition of programming languages but there is a lack of appropriate tools to support language development. General purpose language implementation systems are oriented to syntax with poor support for semantics. Specialised denotational sema ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
Denotational semantics is now used widely for the formal definition of programming languages but there is a lack of appropriate tools to support language development. General purpose language implementation systems are oriented to syntax with poor support for semantics. Specialised denotational semantics based systems correspond closely to the formalism but are rendered inflexible for language experimentation by their monolithic multiple stages Exploratory language development with formal definitions is better served by a unitary notation, encompassing syntax and semantics, which is close to but simpler than denotational semantics. Interactive implementation of the notation then facilitates language investigation through the direct execution of a formal definition as an interpreter for the defined language. This thesis presents Navel, a runtime typed, applicative order, pure functional programming language with integrated context free grammar rules. Navel has been used to develop prot...
Specifying Byrd's Box Model with a Continuation Semantics
, 2000
"... We give a formal specication of Byrd's box model. This specification is based on a on a Prolog operational semantics with continuations. We also show how this specification can be executed by a direct translation into Prolog, leading to a Prolog interpreter that produces execution traces. This inter ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We give a formal specication of Byrd's box model. This specification is based on a on a Prolog operational semantics with continuations. We also show how this specification can be executed by a direct translation into Prolog, leading to a Prolog interpreter that produces execution traces. This interpreter can be used both to experiment various trace models to validate them. We have hence a formal framework to specify and prototype trace models.
Programming Data Structures In Logic
, 1992
"... : Current programming languages that are grounded in a formal logic  such as pure Lisp (based on the lambda calculus) and Prolog (based on Horn clause logic)  do not support the use of complex, pointerbased data structures. The lack of this important feature in logically grounded languages co ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
: Current programming languages that are grounded in a formal logic  such as pure Lisp (based on the lambda calculus) and Prolog (based on Horn clause logic)  do not support the use of complex, pointerbased data structures. The lack of this important feature in logically grounded languages contrasts sharply with its strong support in the imperative programming languages that have enjoyed wide application, of which C is a prime example. Unfortunately, the formal methods for reasoning about imperative languages have not proved broadly useful for reasoning about programs that manipulate complex, pointerbased data structures. Between these two camps resides an open question: How can we verify programs involving complex, pointerbased data structures? This work gives an answer to this question. It describes a programming language in which a programmer can define logical predicates on data structures and pointers, and use these predicates to specify programs that manipulate complex, ...
Implementation of Dynamic Algebras with an Application to Prolog
, 1994
"... Data Types. In J Grabowski, P. Lescanne, and W. Wechler, editors, Algebraic and Logic Programming, International Workshop, Gaussig, DDR, November 1988. [Bra75] D. Brand. Proving Theorems with the Modification Method. SIAM J. Comput. 4, pages 412  430, 1975. [CB83] Jaques Corbin and Michel Bidoit. ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Data Types. In J Grabowski, P. Lescanne, and W. Wechler, editors, Algebraic and Logic Programming, International Workshop, Gaussig, DDR, November 1988. [Bra75] D. Brand. Proving Theorems with the Modification Method. SIAM J. Comput. 4, pages 412  430, 1975. [CB83] Jaques Corbin and Michel Bidoit. A Rehabilitation of Robinsons Unification Algorithm. In IFIP83, pages 909914, 1983. [Cla78] K. L. Clark. Negation as Failure. In H. Gallaire and J. Minker, editors, Logic and Databases, pages 293322. Plenum, New York, 1978. 98 BIBLIOGRAPHY [CP86] P.T. Cox and T. Pietrzykowski. Surface Deduction: a uniform Mechanism for Logic Programming. In 1985 International Symposium on Logic Programming Boston, pages 220  227. IEEE Computer Society Press, 1986. [DDQ78] P.J. Denning, J.B. Dennis, and J.E. Qualitz. Machines, Languages and Computation. Prentice Hall, Englewood Cliffs, New Jersey, 1978. [DF87] Pierre Deransart and Gerard Ferrand. An Operational formal Definition of Prolog. Technical R...