Results 1 
9 of
9
The implementation of the Gofer functional programming system
, 1994
"... The Gofer system is a functional programming environment for a small, Haskelllike language. Supporting a wide range of different machines, including home computers, the system is widely used, both for teaching and research. This report describes the main ideas and techniques used in the implementat ..."
Abstract

Cited by 55 (4 self)
 Add to MetaCart
The Gofer system is a functional programming environment for a small, Haskelllike language. Supporting a wide range of different machines, including home computers, the system is widely used, both for teaching and research. This report describes the main ideas and techniques used in the implementation of Gofer. This information will be particularly useful for work using Gofer as a platform to explore the use of new language features or primitives. It should also be of interest to those curious to see how the general techniques of functional programming language compilation are adapted to a simple, but practical, implementation.
19831993: The Wonder Years of Sequential Prolog Implementation
, 1993
"... This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part ..."
Abstract

Cited by 49 (4 self)
 Add to MetaCart
This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part gives an overview of the important technical developments starting with the Warren Abstract Machine (WAM). The second part presents the history and the contributions of the major software and hardware systems. The third part charts the evolution of Prolog performance since Warren's DEC10 compiler. The fourth part extrapolates current trends regarding the evolution of sequential logic languages, their implementation, and their role in the marketplace.
Implementation Techniques for Prolog
 Proceedings of the Tenth Logic Programming Workshop, WLP 94
, 1994
"... This paper is a short survey about currently used implementation techniques for Prolog. It gives an introduction to unification and resolution in Prolog and presents the memory model and a basic execution model. These models are expanded to the Vienna Abstract Machine (VAM) with its two versions, th ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
This paper is a short survey about currently used implementation techniques for Prolog. It gives an introduction to unification and resolution in Prolog and presents the memory model and a basic execution model. These models are expanded to the Vienna Abstract Machine (VAM) with its two versions, the VAM 2P and the VAM 1P , and the most famous abstract machine, the Warren Abstract Machine (WAM). The continuation passing style model of Prolog, binary Prolog, leads to the BinWAM. Abstract interpretation can be applied to gather information about a program. This information is used in the generation of very specialized machine code and in optimizations like clause indexing and instruction scheduling on each kind of abstract machine. 1 Introduction The implementation of Prolog has a long history [Col93]. Early systems were implemented by the group around Colmerauer in Marseille. The first system was an interpreter written in Algol by Phillip Roussel in 1972. With this experience a more e...
An Efficient Decision Algorithm For Feature Logic
 In Proceedings of the 16th German Workshop on Artificial Intelligence
, 1992
"... . Feature terms are a common denominator of basic datastructures in knowledge representation and computational linguistics. The adaptation of the usual unification algorithms for first order terms is not straightforward, because feature terms may contain logical disjunction. Expansion into disjuncti ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. Feature terms are a common denominator of basic datastructures in knowledge representation and computational linguistics. The adaptation of the usual unification algorithms for first order terms is not straightforward, because feature terms may contain logical disjunction. Expansion into disjunctive normal form would reduce the problem more or less to unification of first order terms. But for reasons of efficiency, rewriting into disjunctive normal form should not be compulsory. In this paper, a sequent calculus is defined which gives a clear formal basis for proof optimizations: inference steps which require more than one subproof, i.e. which lead towards a "disjunctive normal form", are only performed when they are no longer unavoidable. It is shown that the calculus is sound and complete with respect to the socalled feature structure interpretations of feature terms. 1 Introduction Both in general knowledge representation (e.g. AitKaci/Nasr's LOGIN [2], [1]) and in computationa...
A Graph Unification Machine for NL Parsing
, 2002
"... A simple, novel, and ecient computational model for a graph unification method for NL parsing is presented. We rely the body of existing research on labeled graph unification for natural language parsing. This model offers several advantages including: simplicity, effficiency, and amenability to ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A simple, novel, and ecient computational model for a graph unification method for NL parsing is presented. We rely the body of existing research on labeled graph unification for natural language parsing. This model offers several advantages including: simplicity, effficiency, and amenability to a lowlevel, efficient, and straightforward implementation. A consequence of this is that some earlier considerations with respect to garbage collection and redundant node copying become obsolete. The model uses a novel feature of subnode structure sharing.
Sourcetracking Unification using semiDyck labeled reachability
, 2004
"... We propose a pathbased framework for deriving and simplifying sourcetracking information for firstorder term unification in the empty theory. Such a framework is useful for diagnosing unificationbased systems, including debugging of type errors in programs and the generation of success and failu ..."
Abstract
 Add to MetaCart
We propose a pathbased framework for deriving and simplifying sourcetracking information for firstorder term unification in the empty theory. Such a framework is useful for diagnosing unificationbased systems, including debugging of type errors in programs and the generation of success and failure proofs in logic programming. The objects of sourcetracking are deductions in the logic of term unification. The semantics of deductions are paths over a unification graph whose labels form the suffix language of a semiDyck set. Based on this framework, two algorithms for generating proofs are presented: the first uses contextfree labeled shortestpath algorithms to generate optimal (shortest) proofs in time O(n³), for a fixed signature, where n is the number of vertices of the unification graph. The second algorithm integrates easily with standard unification algorithms, entailing an overhead of only a constant factor, but generates nonoptimal proofs. These nonoptimal proofs may be further simplified by group rewrite rules.
15th July 1972: A Significant Moment for Logic Programming
, 1992
"... this paper in the April 1st, 1993 issue of SIGPLAN Notices. It was quickly supressed by the Logic Programming `powersthatbe' ..."
Abstract
 Add to MetaCart
this paper in the April 1st, 1993 issue of SIGPLAN Notices. It was quickly supressed by the Logic Programming `powersthatbe'
Theory and Practice of Logic Programming 1 Efficient Tabling of Structured Data with Enhanced HashConsing
"... submitted; revised; accepted Current tabling systems suffer from an increase in space complexity, time complexity or both when dealing with sequences due to the use of data structures for tabled subgoals and answers and the need to copy terms into and from the table area. This symptom can be seen in ..."
Abstract
 Add to MetaCart
submitted; revised; accepted Current tabling systems suffer from an increase in space complexity, time complexity or both when dealing with sequences due to the use of data structures for tabled subgoals and answers and the need to copy terms into and from the table area. This symptom can be seen in not only BProlog, which uses hash tables, but also systems that use tries such as XSB and YAP. In this paper, we apply hashconsing to tabling structured data in BProlog. While hashconsing can reduce the space consumption when sharing is effective, it does not change the time complexity. Weenhance hashconsingwith twotechniques, called input sharing and hash code memoization, for reducing the time complexity by avoiding computinghashcodes for certainterms. Theimprovedsystemis abletoeliminate theextra linear factor in the old system for processing sequences, thus significantly enhancing the scalability of applications such as language parsing and biosequence analysis applications. We confirm this improvement with experimental results. 1
thesis upon request.
, 2005
"... I, the undersigned, declare that this work has not previously been submitted as an exercise for a degree at this, or any other University, and that unless otherwise stated, is my own work. ..."
Abstract
 Add to MetaCart
I, the undersigned, declare that this work has not previously been submitted as an exercise for a degree at this, or any other University, and that unless otherwise stated, is my own work.