Navegación

Búsqueda

Búsqueda avanzada

Resultados de búsqueda para Prolog

Evaluation of the Implementation of an Abstract Interpretation Algorithm using Tabled CLP

CiaoPP is an analyzer and optimizer for logic programs, part of the Ciao Prolog system. It includes PLAI, a fixpoint algorithm for the abstract interpretation of logic programs which we adapt to use tabled constraint logic programming. In this adaptation, the tabling engine drives the fixpoint computation, while the constraint solver handles the LUB of the abstract substitutions of different clauses. That simplifies the code and improves performance, since termination, dependencies, and some crucial operations (e.g., branch switching and resumption) are directly handled by the tabling engine. Determining whether the fixpoint has been reached uses semantic equivalence, which can decide that two syntactically different abstract substitutions represent the same element in the abstract domain. Therefore, the tabling analyzer can reuse answers in more cases than an analyzer using syntactical equality. This helps achieve better performance, even taking into account the additional cost associated to these checks. Our implementation is based on the TCLP framework available in Ciao Prolog and is one-third the size of the initial fixpoint implementation in CiaoPP. Its performance has been evaluated by analyzing several programs using different abstract domains.

The full paper has been presented at the 35th International Conference on Logic Programming (ICLP 2019), Las Cruces, USA, September 20-25, 2019 [1].

Autores: Joaquín Arias / Manuel Carro / 
Palabras Clave: abstract interpretation - CiaoPP - constraints - PLAI - Prolog - Tabling

Description and Evaluation of a Generic Design to Integrate CLP and Tabled Execution (Trabajo de alto nivel)

Logic programming systems with tabling and constraints (TCLP, tabled constraint logic
programming) have been shown to be more expressive and in some cases more efficient
than those featuring only either tabling or constraints. Previous implementations of TCLP
systems which use entailment to determine call / answer subsumption did not provide a
simple, uniform, and well-documented interface to facilitate the integration of additional
constraint solvers in existing tabling systems, which would increase the application range of
TCLP. We present the design and an experimental evaluation of Mod TCLP, a framework
which eases this integration. Mod TCLP views the constraints solver as a client of the tabling
system. The tabling system is generic w.r.t. the constraint solver and only requires a clear,
small interface from the latter. We validate our design by integrating four constraint solvers:
a re-engineered version of a previously existing constraint solver for difference constraints,
written in C; the standard versions of Holzbauer’s CLP(Q) and CLP(R), written in Prolog;
and a new constraint solver for equations over finite lattices. We evaluate the performance
of our framework in several benchmarks using the aforementioned constraint solvers. All
the development work and evaluation was done in Ciao Prolog.

Autores: Joaquín Arias / Manuel Carro / 
Palabras Clave: constraints - Implementation - Interface - Prolog - Tabling

Lightweight compilation of (C)LP to JavaScript

We present and evaluate a compiler from Prolog (extensions) to JavaScript which makes it possible to use (constraint) logic programming to develop the client side of web applications while being compliant with current industry standards. Targeting JavaScript makes (C)LP programs executable in virtually every modern computing device with no additional software requirements from the point of view of the user. In turn, the use of a very high-level language facilitates the development of high-quality, complex software. The compiler is a back end of the Ciao system and supports most of its features, including its module system and extension mechanism. We demonstrate the maturity of the compiler by testing it with complex code such as a CLP(FD) library written in Prolog with attributed variables. Finally, we validate our proposal by measuring the performance of some LP and CLP(FD) benchmarks running on top of major JavaScript engines.

Autores: Jose F. Morales / Rémy Haemmerlé / Manuel Carro / Manuel V. Hermenegildo / 
Palabras Clave: Ciao - Implementation of Prolog - JavaScript - Logic Programming System - Modules - Prolog - Web

No encuentra los resultados que busca? Prueba nuestra Búsqueda avanzada