Results 1 - 10
of
12
Principles and implementation of deductive parsing
- JOURNAL OF LOGIC PROGRAMMING
, 1995
"... We present a system for generating parsers based directly on the metaphor of parsing as deduction. Parsing algorithms can be represented directly as deduction systems, and a single deduction engine can interpret such deduction systems so as to implement the corresponding parser. The method generaliz ..."
Abstract
-
Cited by 150 (4 self)
- Add to MetaCart
We present a system for generating parsers based directly on the metaphor of parsing as deduction. Parsing algorithms can be represented directly as deduction systems, and a single deduction engine can interpret such deduction systems so as to implement the corresponding parser. The method generalizes easily to parsers for augmented phrase structure formalisms, such as definiteclause grammars and other logic grammar formalisms, and has been used for rapid prototyping of parsing algorithms for a variety of formalisms including variants of tree-adjoining grammars, categorial grammars, and lexicalized context-free grammars.
Finite-State Approximation Of Phrase Structure Grammars
, 1991
"... Phrase-structure grammars are an effective representation for important syntactic and semantic aspects of natural languages , but are computationally too demanding for use as language models in real-time speech recognition. An algorithm is described that computes finite-state approximations for cont ..."
Abstract
-
Cited by 42 (1 self)
- Add to MetaCart
Phrase-structure grammars are an effective representation for important syntactic and semantic aspects of natural languages , but are computationally too demanding for use as language models in real-time speech recognition. An algorithm is described that computes finite-state approximations for context-free grammars and equivalent augmented phrase-structure grammar formalisms. The approximation is exact for certain context-free grammars generating regular languages, including all left-linear and right-linear context-free grammars. The algorithm has been used to construct finite-state language models for limited-domain speech recognition tasks.
On the Complexity of Dataflow Analysis of Logic Programs
, 1992
"... This article reports some results on this correlation in the context of logic programs. A formal notion of the "precision" of an analysis algorithm is proposed, and this is used to characterize the worst-case computational complexity of a number of dataflow analyses with different degrees of precisi ..."
Abstract
-
Cited by 35 (4 self)
- Add to MetaCart
This article reports some results on this correlation in the context of logic programs. A formal notion of the "precision" of an analysis algorithm is proposed, and this is used to characterize the worst-case computational complexity of a number of dataflow analyses with different degrees of precision. While this article considers the analysis of logic programs, the technique proposed, namely the use of "exactness sets" to study relationships between complexity and precision of analyses, is not specific to logic programming in any way, and is equally applicable to flow analyses of other language families.
Suspension Analyses for Concurrent Logic Programs
- ACM Transactions on Programming Languages and Systems
, 1994
"... Interpretation, concurrent logic programming, program analysis The work of M. Falaschi has been partially supported by ESPRIT Basic Research Action 6707 -- Parforce. Authors' current addresses: M. Codish, Department of Mathematics and Computer Science, Ben-Gurion University, P.O.B. 653, 84105 Beer-S ..."
Abstract
-
Cited by 23 (6 self)
- Add to MetaCart
Interpretation, concurrent logic programming, program analysis The work of M. Falaschi has been partially supported by ESPRIT Basic Research Action 6707 -- Parforce. Authors' current addresses: M. Codish, Department of Mathematics and Computer Science, Ben-Gurion University, P.O.B. 653, 84105 Beer-Sheba, Israel. email: codish@bengus.bgu.ac.il; M. Falaschi, Dipartimento di Elettronica e Informatica, Padova University, Via Gradenigo 6/A, Padova, Italy. email: falaschi@artemide.dei.unipd.it; K. Marriott, Department of Computer Science, Monash University, Clayton 3168, Victoria, Australia. email: marriott @bruce.cs.monash.oz.au Contents 1 Introduction 3 2 Example 4 3 Concurrent logic programs 6 3.1 Preliminaries : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.2 Operational semantics : : : : : : : : : : : : : : : : : : : : : : : : : : 7 4 Approximating Transition Systems 10 4.1 Abstract Interpretation : : : : : : : : : : : : : : : : : : : : : : : : : 10 4.2 Abstract ...
Polymorphic Type Analysis in Logic Programs by Abstract Interpretation
- Journal of Logic Programming
, 1998
"... INTERPRETATION LUNJIN LU LIX Ecole Polytechnique 91128 Palaiseau Cedex France Abstract In this paper, we first introduce a notion of polymorphic abstract interpretation that formalises a polymorphic analysis as a generalisation of possibly infinitely many monomorphic analyses in the sense that the ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
INTERPRETATION LUNJIN LU LIX Ecole Polytechnique 91128 Palaiseau Cedex France Abstract In this paper, we first introduce a notion of polymorphic abstract interpretation that formalises a polymorphic analysis as a generalisation of possibly infinitely many monomorphic analyses in the sense that the results of the monomorphic analyses can be obtained as instances of that of the polymorphic analysis. We then present a polymorphic type analysis of logic programs in terms of an abstract domain for polymorphic descriptions of type information and two operators on the abstract domain, namely the least upper bound operator and the abstract unification operator. The abstract domain captures type information more precisely than other abstract domains for similar purposes. The abstract unification operator for the polymorphic type analysis is designed by lifting the abstract unification operator for a monomorphic type analysis in logic programs, which simplifies the proof of the safeness of the...
Generalized Horn Clause Programs
, 1994
"... This paper considers, in a general setting, an axiomatic basis for Horn clause logic programming. It characterizes a variety of "Horn-clause-like" computations, arising in contexts such as deductive databases, various abstract interpretations, and extensions to logic programming involving E-unifi ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
This paper considers, in a general setting, an axiomatic basis for Horn clause logic programming. It characterizes a variety of "Horn-clause-like" computations, arising in contexts such as deductive databases, various abstract interpretations, and extensions to logic programming involving E-unification, quantitative deduction, and inheritance, in terms of two simple operators, and discusses algebraic properties these operators must satisfy. It develops fixpoint and model-theoretic semantics in this generalized setting, and shows that the fixpoint semantics is well-defined and coincides with the model-theoretic semantics. This leads to a generalized notion of a Horn clause logic program that captures a variety of fixpoint computations proposed in different guises, and allows concise expression in the logic programming idiom of several programs that involve aggregate operations. S. Debray was supported in part by NSF grant CCR-9123520. R. Ramakrishnan's work was supported in pa...
Type Analysis of Logic Programs in the Presence of Type Definitions
- In Proceedings of the 1995 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based program manipulation
, 1995
"... This paper presents an abstract domain and an abstract unification function for type analysis of logic programs with type definitions. Type information is inferred together with sharing and aliasing information. Aliasing information is used to improve the precision of type analysis. 1 Introduction ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
This paper presents an abstract domain and an abstract unification function for type analysis of logic programs with type definitions. Type information is inferred together with sharing and aliasing information. Aliasing information is used to improve the precision of type analysis. 1 Introduction Prolog is a type-free language. The programmer does not have to specify the types of variables, functions and predicates. This may make it simple to write simple programs. However, it also makes it difficult to debug programs because type errors cannot be detected by Prolog systems. A type error will manifest itself in the form of a wrong result or a missing result rather than an indication of a type violation. There have been many efforts to augment Prolog with type systems in the forms of type checking systems [2, 11, 27] and type analysis systems. Type analysis systems infer types from the text of a program. Some type analysis systems infer a type for the program and the type is meant to ...
Improving Program Analyses by Structure Untupling
- Journal of Logic Programming
, 1999
"... It is well-known that adding structural information to an analysis domain can increase the precision of the analysis with respect to the original domain. This paper presents a program transformation based on untupling and specialisation which can be applied to upgrade (logic) program analysis by pro ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
It is well-known that adding structural information to an analysis domain can increase the precision of the analysis with respect to the original domain. This paper presents a program transformation based on untupling and specialisation which can be applied to upgrade (logic) program analysis by providing additional structural information. It can be applied to (almost) any type of analysis and in conjunction with (almost) any analysis framework for logic programs. The approach is an attractive alternative to the more complex Pat(R) construction which automatically enhances an abstract domain R (in the context of abstract interpretation) with structural information. 1 Introduction The practical utility of enhancing an abstract domain to include structural information has long been recognised. One reason is that structural information is of intrinsic interest. More usually, it is because such information has the potential to increase the precision of many other types of analysis. In the...
Making a Success out of Early Failures
, 1997
"... Promoting early failure of unsuccessful computations is a powerful optimization that enhances determinism in the evaluation of logic programs. This optimization has two principal components: 1) identifying and extracting conditions that yield information about the eventual success or failure of pred ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Promoting early failure of unsuccessful computations is a powerful optimization that enhances determinism in the evaluation of logic programs. This optimization has two principal components: 1) identifying and extracting conditions that yield information about the eventual success or failure of predicates, 2) exploiting these conditions to avoid unnecessary computation. For the first part sophisticated compile-time global analysis methods exist that compute the necessary conditions for a predicate and its constituent clauses to succeed. In this paper we address the other problem, namely the exploitation of necessary conditions. Specifically we develop a technique for selecting tests from necessary conditions based on an analysis of their costs and benefits. The resulting optimized program does not create any more choice points or failure paths than the original program. More importantly, success path lengths in the optimized program can never grow any longer than the corresponding path...

