An overview of Ciao and its design philosophy

@article{Hermenegildo2011AnOO,
  title={An overview of Ciao and its design philosophy},
  author={Manuel V. Hermenegildo and Francisco Bueno and Manuel Carro and Pedro L{\'o}pez-Garc{\'i}a and Edison Mera and Jos{\'e} Francisco Morales and Germ{\'a}n Puebla},
  journal={Theory and Practice of Logic Programming},
  year={2011},
  volume={12},
  pages={219 - 252}
}
Abstract We provide an overall description of the Ciao multiparadigm programming system emphasizing some of the novel aspects and motivations behind its design and implementation. An important aspect of Ciao is that, in addition to supporting logic programming (and, in particular, Prolog), it provides the programmer with a large number of useful features from different programming paradigms and styles and that the use of each of these features (including those of Prolog) can be turned on and… 
An Overview of the Ciao System
TLDR
A hands-on overview of Ciao, a logic-based, multi-paradigm programming system which offers very competitive performance, while retaining the flexibility and interactive development of a dynamic language.
The Ciao clp(FD) Library. A Modular CLP Extension for Prolog
We present a new free library for Constraint Logic Programming over Finite Domains, included with the Ciao Prolog system. The library is entirely written in Prolog, leveraging on Ciao's module system
To appear in Theory and Practice of Logic Programming . 1 Lightweight compilation of ( C ) LP to JavaScript ∗
TLDR
A compiler from Prolog to JavaScript is presented and evaluated which makes it possible to use (constraint) logic programming to develop the client side of web applications while being compliant with current industry standards.
Lightweight compilation of (C)LP to JavaScript*
TLDR
A compiler from Prolog to JavaScript is presented and evaluated which makes it possible to use (constraint) logic programming to develop the client side of web applications while being compliant with current industry standards.
The Ciao CLP ( ^ X > ) Library A Modular CLP Extension for Prolog ( System Description )
TLDR
A new free library for Constraint Logic Programming over Finite Domains, included with the Ciao Prolog system, which is entirely written in Prolog, leveraging on Ciao's module system and code transformation capabilities in order to achieve a highly modular design without compromising performance.
Design and implementation of a modular interface to integrateCLP and tabled execution
TLDR
The requirements that a constraint solver must fulfill in order to be interfaced with a tabling system are examined, and a framework, which is called Mod TCLP, is proposed with a minimal set of operations which the constraint solvers has to provide to the tabling engine.
Description and Optimization of Abstract Machines in a Dialect of Prolog*
TLDR
It is shown how the semantics of most basic components of an efficient virtual machine for Prolog can be described using (a variant of) Prolog, and how these descriptions are compiled to C and assembled to build a complete bytecode emulator.
Reversible Language Extensions and Their Application in Debugging
TLDR
This paper proposes an augmented approach to language extensions for Prolog, where symbolic annotations are included in the target program, which allows the selective reversal of the translated code.
Fifty Years of Prolog and Beyond
TLDR
A SWOT analysis is performed in order to better identify the potential of Prolog and propose future directions along with which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.
50 Years of Prolog and Beyond
TLDR
A SWOT analysis is performed in order to better identify the potential of Prolog, and propose future directions along which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.
...
...

References

SHOWING 1-10 OF 162 REFERENCES
Parallelism and implementation of logic and constraint logic programming
TLDR
Recent progress made in the context of the CIAO system is reported, with special emphasis on the capabilities of the compiler, the techniques used for supporting such capabilities, and the results in the areas of program analysis and transformation already obtained with the system.
The CIAO Multi-Dialect Compiler and System: An Experimentation Workbench for Future (C)LP Systems
TLDR
Recent progress made in the context of the CIAO system is reported, with special emphasis on the capabilities of the compiler, the techniques used for supporting such capabilities, and the results in the areas of program analysis and transformation already obtained with the system.
Some Methodological Issues in the Design of CIAO, a Generic, Parallel Concurrent Constraint Logic Programming System
TLDR
A new view of these systems is proposed, based on a particular definition of parallelism, that a large number of the actual systems and models can be explained through the application of only a few basic principles: determinism, non-failure, independence, granularity, etc.
Some methodological issues in the design of CIAO, a generic, parallel concurrent constraint system
TLDR
A new view of these systems is proposed, based on a particular definition of parallelism, that a large number of the actual systems and models can be explained through the application of only a few basic principies: determinism, non-failure, independence, granularity, etc.
An Assertion Language for Constraint Logic Programs
TLDR
A general language of assertions is proposed which is used in different tools for validation and debugging of constraint logic programs in the context of the DiSCiPl project and is quite general in that it poses few restrictions on the kind of properties which may be expressed.
Improved Compilation of Prolog to C Using Moded Types and Determinism Information
TLDR
The current status of and performance results for a prototype compiler of Prolog to C, ciaocc are described, which is designed to accept different kinds of high-level information, typically obtained via an automatic analysis of the initial Prolog program and expressed in a standardized language of assertions.
A New Module System for Prolog
TLDR
The Ciao module system is presented, which has been designed to meet a number of objectives: allowing separate compilation, extensibility in features and in syntax, amenability to modular global analysis and transformation, enhanced error detection, support for meta-programming and higher-order, compatibility to the extent possible with official and de-facto standards, etc.
A Practical Framework for the Abstract Interpretation of Logic Programs
Independence in CLP languages
TLDR
It is shown that search space preservation is not only a sufficient but also a necessary condition for ensuring correctness and efficiency of parallel execution, and new insights into independence in logic programming languages are yielded.
...
...