An overview of the ciao system

Hermenegildo, Manuel V. and Bueno Carrillo, Francisco and Carro Liñares, Manuel and López García, Pedro and Haemmerlé, R. and Mera, E. and Morales Caballero, José Francisco and Puebla Sánchez, Alvaro Germán (2011). An overview of the ciao system. In: "5th International Symposium, RuleML 2011", July 19-21, 2011, Europe, Barcelona, Spain. ISBN 9783642225451.


Title: An overview of the ciao system
  • Hermenegildo, Manuel V.
  • Bueno Carrillo, Francisco
  • Carro Liñares, Manuel
  • López García, Pedro
  • Haemmerlé, R.
  • Mera, E.
  • Morales Caballero, José Francisco
  • Puebla Sánchez, Alvaro Germán
Item Type: Presentation at Congress or Conference (Other)
Event Title: 5th International Symposium, RuleML 2011
Event Dates: July 19-21, 2011
Event Location: Europe, Barcelona, Spain
Title of Book: Rule-Based Reasoning, Programming, and Applications
Date: July 2011
ISBN: 9783642225451
Volume: 6826
Faculty: Facultad de Informática (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (50kB) | Preview


Ciao is a logic-based, multi-paradigm programming system. One of its most distinguishing features is that it supports a large number of semantic and syntactic language features which can be selectively activated or deactivated for each program module. As a result, a module can be written in, for example, ISO-Prolog plus constraints and higher order, while another can be a puré logic module with a different control rule such as iterative deepening and/or tabling, and perhaps using constructive negation. A powerful and modular extensión mechanism allows user-level design and implementation of such features and sub-languages. Another distinguishing feature of Ciao is its powerful assertion language, which allows expressing many kinds of program properties (ranging from, e.g., moded types to resource consumption), as well as tests and documentation. The compiler is capable of statically ñnding violations of these properties or verifying that programs comply with them, and issuing certiñcates of this compliance. The compiler also performs many types of optimizations, including automatic parallelization. It offers very competitive performance, while retaining the flexibility and interactive development of a dynamic language. We will present a hands-on overview of the system, through small examples which emphasize the novel aspects and the motivations which lie behind Ciao's design and implementation.

More information

Item ID: 14506
DC Identifier:
OAI Identifier:
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 19 Feb 2013 16:24
Last Modified: 21 Apr 2016 14:12
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM