Advertisement

An Overview of the Ciao System

  • Manuel V. Hermenegildo
  • F. Bueno
  • M. Carro
  • P. López-García
  • R. Haemmerlé
  • E. Mera
  • J. F. Morales
  • G. Puebla
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6826)

Abstract

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 pure logic module with a different control rule such as iterative deepening and/or tabling, and perhaps using constructive negation. A powerful and modular extension 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 finding violations of these properties or verifying that programs comply with them, and issuing certificates 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.

Keywords

Software Engineer Logic Program Resource Consumption Programming Technique Moded Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Hermenegildo, M.V., Bueno, F., Carro, M., López, P., Mera, E., Morales, J.F., Puebla, G.: An Overview of Ciao and its Design Philosophy. Theory and Practice of Logic Programming (2011), http://arxiv.org/abs/1102.5497

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Manuel V. Hermenegildo
    • 1
    • 2
  • F. Bueno
    • 2
  • M. Carro
    • 1
    • 2
  • P. López-García
    • 1
    • 4
  • R. Haemmerlé
    • 2
  • E. Mera
    • 3
  • J. F. Morales
    • 1
  • G. Puebla
    • 2
  1. 1.Madrid Institute of Advanced Studies, in SW Development Technology (IMDEA Software Institute)Spain
  2. 2.Universidad Politécnica de Madrid (UPM)Spain
  3. 3.Universidad Complutense de Madrid (UCM)Spain
  4. 4.Scientific Research Council (CSIC)Spain

Personalised recommendations