English
Related papers

Related papers: Memoized Pull-Tabbing for Functional Logic Program…

200 papers

The paradigm of Tabled Logic Programming (TLP) is now supported by a number of Prolog systems, including XSB, YAP Prolog, B-Prolog, Mercury, ALS, and Ciao. The reasons for this are partly theoretical: tabling ensures termination and optimal…

Programming Languages · Computer Science 2010-12-24 Terrance Swift , David S. Warren

In this paper, we consider the problem of lifted inference in the context of Prism-like probabilistic logic programming languages. Traditional inference in such languages involves the construction of an explanation graph for the query and…

Artificial Intelligence · Computer Science 2016-08-23 Arun Nampally , C. R. Ramakrishnan

Infinite loops and redundant computations are long recognized open problems in Prolog. Two ways have been explored to resolve these problems: loop checking and tabling. Loop checking can cut infinite loops, but it cannot be both sound and…

Artificial Intelligence · Computer Science 2007-05-23 Yi-Dong Shen , Li-Yan Yuan , Jia-Huai You , Neng-Fa Zhou

Applying dynamic logics to program verifications is a challenge, because their axiomatic rules for regular expressions can be difficult to be adapted to different program models. We present a novel dynamic logic, called DLp, which supports…

Logic in Computer Science · Computer Science 2026-02-11 Yuanrui Zhang

Functional logic programming (FLP) languages use non-terminating and non-confluent constructor systems (CS's) as programs in order to define non-strict non-determi-nistic functions. Two semantic alternatives have been usually considered for…

Programming Languages · Computer Science 2020-02-19 Adrián Riesco , Juan Rodríguez-Hortalá

Program specialization is a program transformation methodology which improves program efficiency by exploiting the information about the input data which are available at compile time. We show that current techniques for program…

Programming Languages · Computer Science 2007-05-23 Alberto Pettorossi , Maurizio Proietti , Sophie Renault

Several Prolog implementations include a facility for tabling, an alternative resolution strategy which uses memoisation to avoid redundant duplication of computations. Until relatively recently, tabling has required either low-level…

Programming Languages · Computer Science 2017-08-28 Samer Abdallah

Logic languages based on the theory of rational, possibly infinite, trees have much appeal in that rational trees allow for faster unification (due to the safe omission of the occurs-check) and increased expressivity (cyclic terms can…

Programming Languages · Computer Science 2007-05-23 Roberto Bagnara , Roberta Gori , Patricia M. Hill , Enea Zaffanella

There are billions of lines of sequential code inside nowadays' software which do not benefit from the parallelism available in modern multicore architectures. Automatically parallelizing sequential code, to promote an efficient use of the…

Programming Languages · Computer Science 2016-04-13 Alcides Fonseca , Bruno Cabral , João Rafael , Ivo Correia

Probabilistic programming is a growing area that strives to make statistical analysis more accessible, by separating probabilistic modelling from probabilistic inference. In practice this decoupling is difficult. No single inference…

Programming Languages · Computer Science 2022-04-15 Maria I. Gorinova

Abductive logic programs offer a formalism to declaratively represent and reason about problems in a variety of areas: diagnosis, decision making, hypothetical reasoning, etc. On the other hand, logic program updates allow us to express…

Artificial Intelligence · Computer Science 2014-05-09 Ari Saptawijaya , Luís Moniz Pereira

The syntactic nature of logic and computation separates them from other fields of mathematics. Nevertheless, syntax has been the only way to adequately capture the dynamics of proofs and programs such as cut-elimination, and the finiteness…

Logic · Mathematics 2023-06-14 Norihiro Yamada

The past years have seen widening efforts at increasing Prolog's declarativeness and expressiveness. Tabling has proved to be a viable technique to efficiently overcome SLD's susceptibility to infinite loops and redundant subcomputations.…

Programming Languages · Computer Science 2007-05-23 Ricardo Rocha , Fernando Silva , Vitor Santos Costa

Logic programming with tabling and constraints (TCLP, tabled constraint logic programming) has been shown to be more expressive and, in some cases, more efficient than LP, CLP, or LP with tabling. In this paper we provide insights regarding…

Logic in Computer Science · Computer Science 2020-10-01 Joaquín Arias , Manuel Carro

Technical computing is a challenging application area for programming languages to address. This is evinced by the unusually large number of specialized languages in the area (e.g. MATLAB, R), and the complexity of common software stacks,…

Programming Languages · Computer Science 2018-08-13 Jeff Bezanson , Jake Bolewski , Jiahao Chen

This paper continues a systematic and comprehensive study on the structural properties of CFL functions, which are in general multi-valued partial functions computed by one-way one-head nondeterministic pushdown automata equipped with…

Formal Languages and Automata Theory · Computer Science 2015-08-25 Tomoyuki Yamakami

We present a static analysis technique for non-termination inference of logic programs. Our framework relies on an extension of the subsumption test, where some specific argument positions can be instantiated while others are generalized.…

Programming Languages · Computer Science 2007-05-23 Etienne Payet , Fred Mesnard

We unify functional and logic programming by treating predicatesas functions equipped with their support: the set of inputs whose output is nonzero. Datalog, for instance, is a language of finitely supported boolean functions. Finite…

Programming Languages · Computer Science 2026-04-30 Michael Arntzenius , Max Willsey

Program slicing has been mainly studied in the context of imperative languages, where it has been applied to a wide variety of software engineering tasks, like program understanding, maintenance, debugging, testing, code reuse, etc. This…

Programming Languages · Computer Science 2007-05-23 Josep Silva , Germán Vidal

Delimited control is a powerful mechanism for programming language extension which has been recently proposed for Prolog (and implemented in SWI-Prolog). By manipulating the control flow of a program from inside the language, it enables the…

Programming Languages · Computer Science 2023-03-08 Alexander Vandenbroucke , Tom Schrijvers