Results 21  30
of
3,988
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 58 (9 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
Lightweight Lemmas in λProlog
, 1999
"... λProlog is known to be wellsuited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. The terms of the metalanguage (λProlog) can be used to express the statement of a lemma, and the ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
, and the type checking of the metalanguage can directly implement the type checking of the lemma. The MLstyle prenex polymorphism of lProlog allows easy expression of polymorphic inference rules, but a more general polymorphism would be necessary to express polymorphic lemmas directly. We discuss both
Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming
 Proc. of the ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI 2003
, 2003
"... We describe a design pattern for writing programs that traverse data structures built from rich mutuallyrecursive data types. Such programs often have a great deal of "boilerplate" code that simply walks the structure, hiding a small amount of "real" code that constitutes the re ..."
Abstract

Cited by 191 (15 self)
 Add to MetaCart
We describe a design pattern for writing programs that traverse data structures built from rich mutuallyrecursive data types. Such programs often have a great deal of "boilerplate" code that simply walks the structure, hiding a small amount of "real" code that constitutes the reason for the traversal. Our technique allows most...
Implementing Mathematics with The Nuprl Proof Development System
, 1986
"... Problem solving is a significant part of science and mathematics and is the most intellectually significant part of programming. Solving a problem involves understanding the problem, analyzing it, exploring possible solutions, writing notes about intermediate results, reading about relevant methods, ..."
Abstract

Cited by 190 (18 self)
 Add to MetaCart
Problem solving is a significant part of science and mathematics and is the most intellectually significant part of programming. Solving a problem involves understanding the problem, analyzing it, exploring possible solutions, writing notes about intermediate results, reading about relevant methods, checking results, and eventually assembling a solution. Nuprl is a computer system which provides assistance with this activity. It supports the interactive creation of proofs, formulas, and terms in a formal theory of mathematics
Polymorphic Lemmas and Definitions in λProlog and Twelf
 THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2004
"... λProlog is known to be wellsuited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. We encode a higherorder logic using an encoding that maps both terms and types of the object log ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
λProlog is known to be wellsuited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. We encode a higherorder logic using an encoding that maps both terms and types of the object
The ASTOOT approach to testing objectoriented programs
 ACM Transactions on Software Engineering
, 1994
"... This article describes a new approach to the unit testing of objectoriented programs, a set of tools based on this approach, and two case studies. In this approach, each test case consists of a tuple of sequences of messages, along with tags indicating whether these sequences should put objects of ..."
Abstract

Cited by 182 (1 self)
 Add to MetaCart
This article describes a new approach to the unit testing of objectoriented programs, a set of tools based on this approach, and two case studies. In this approach, each test case consists of a tuple of sequences of messages, along with tags indicating whether these sequences should put objects of the class under test into equivalent states and\or return objects that are in equivalent states. Tests are executed by sending the sequences to objects of the class under test, then invoking a usersupplied equivalencechecking mechanism. This approach allows for substantial automation of many aspects of testing, including test case generation, test driver generation, test execution, and test checking. Experimental prototypes of tools for test generation and test execution are described. The test generation tool requires the availability of an algebraic specification of the abstract data type being tested, but the test execution tool can be used when no formal specification is available. Using the test execution tools, case studies involving execution of tens of thousands of test cases, with various sequence lengths, parameters, and combinations of operations were performed. The relationships among likelihood of detecting an error and sequence length, range of parameters, and relative frequency of various operations were investigated for priority queue and sortedlist implementations having subtle errors. In each case, long sequences tended to be more likely to detect the error, provided that the range of parameters was suffkiently large and likelihood of detecting an error tended to increase up to a threshold value as the parameter range increased. Categories and Subject Descriptors: D.2.1 [Software Engineering]: Requirements/Specificstions—languages; D.2.5 [Software Engineering]: Testing and Debuggingsymbolzc execution;
Compiling MultiParadigm Declarative Programs into Prolog
 In Proc. International Workshop on Frontiers of Combining Systems (FroCoS’2000
, 2000
"... This paper describes a highlevel implementation of the concurrent constraint functional logic language Curry. The implementation, directed by the lazy pattern matching strategy of Curry, is obtained by transforming Curry programs into Prolog programs. Contrary to previous transformations of functio ..."
Abstract

Cited by 58 (37 self)
 Add to MetaCart
This paper describes a highlevel implementation of the concurrent constraint functional logic language Curry. The implementation, directed by the lazy pattern matching strategy of Curry, is obtained by transforming Curry programs into Prolog programs. Contrary to previous transformations
The Architecture of an Implementation of λProlog: Prolog/Mali
 In Workshop on Prolog
, 1995
"... Prolog is a logic programming language accepting a more general clause form than standard Prolog (hereditary Harrop formulas instead of Horn formulas) and using simply typed terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected proofs ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
management. We have used an original Prologto(C+MALI) translation: predicates are transformed into...
A proposal for modules in Prolog
 Workshop Extensions of Logic Programming, LNAI 798
, 1992
"... Abstract. Higherorder hereditary Harrop formulas, the underlying logical foundation of Prolog [NM88], are more expressive than rstorder Horn clauses, the logical foundation of Prolog. In particular, various forms of scoping and abstraction are supported by the logic of higherorder hereditary Harro ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
Abstract. Higherorder hereditary Harrop formulas, the underlying logical foundation of Prolog [NM88], are more expressive than rstorder Horn clauses, the logical foundation of Prolog. In particular, various forms of scoping and abstraction are supported by the logic of higherorder hereditary
Program Verification and Prolog
 Specification and Validation Methods for Programming Languages and Systems
, 1994
"... We show here that verification of Prolog programs can be systematically carried out within a simple framework which comprises syntactic analysis, declarative semantics, modes and types. We apply these techniques to study termination, partial correctness, occurcheck freedom, absence of errors and abs ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
and absence of floundering. Finally, we discuss which aspects of these techniques can be automated. Notes. This research was partly supported by the ESPRIT Basic Research Action 6810 (Compulog 2). A preliminary, shorter, version of this paper appeared as Apt [3]. 1 Introduction 1.1 Motivation Prolog is 20
Results 21  30
of
3,988