An overview of Ciao and its design philosophy release_wopdr753tvfdbbh23rhirgvow4

by M. V. HERMENEGILDO, F. BUENO, M. CARRO, P. LÓPEZ-GARCÍA, E. MERA, J. F. MORALES, G. PUEBLA

Published in Theory and Practice of Logic Programming by Cambridge University Press (CUP).

2011   Volume 12, Issue 1-2, p219-252

Abstract

<jats:title>Abstract</jats:title>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 off at will for each program module. Thus, a given module may be using, e.g., higher order functions and constraints, while another module may be using assignment, predicates, Prolog meta-programming, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of optimizations (including automatic parallelization). Such optimizations produce code that is highly competitive with other dynamic languages or, with the (experimental) optimizing compiler, even that of static languages, all while retaining the flexibility and interactive development of a dynamic language. This compilation architecture supports modularity and separate compilation throughout. The environment also includes a powerful autodocumenter and a unit testing framework, both closely integrated with the assertion system. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in a single journal paper, pointing instead to previous Ciao literature.
In application/xml+jats format

Archived Files and Locations

application/pdf  928.4 kB
file_wi22fb2qbvfq7m67tr3klcgc7m
clip.dia.fi.upm.es (web)
cliplab.org (web)
web.archive.org (webarchive)
web.archive.org (webarchive)
application/pdf  2.1 MB
file_4i3wssagmrfxpcr7xohgnqt2bm
oa.upm.es (web)
web.archive.org (webarchive)
application/pdf  679.1 kB
file_z5cfxnbsqbfc3de2hwbowjlv7a
clip.dia.fi.upm.es:80 (web)
web.archive.org (webarchive)
www.clip.dia.fi.upm.es (web)
web.archive.org (webarchive)
application/pdf  757.0 kB
file_zxuqb5g5kvfrxeumdkdb4roafq
web.archive.org (webarchive)
clip.dia.fi.upm.es (web)
web.archive.org (webarchive)
web.archive.org (webarchive)
cliplab.org (web)
+ 2 more URLs
application/pdf  2.0 MB
file_nwwdtzy6mneqbkyj6zvbgfm3pi
oa.upm.es (web)
web.archive.org (webarchive)
web.archive.org (webarchive)
core.ac.uk (web)
Read Archived PDF
Preserved and Accessible
Type  article-journal
Stage   published
Date   2011-12-30
Language   en ?
Container Metadata
Not in DOAJ
In Keepers Registry
ISSN-L:  1471-0684
Work Entity
access all versions, variants, and formats of this works (eg, pre-prints)
Catalog Record
Revision: 12b7a7af-e3e2-49a2-9ce8-4429d454ef77
API URL: JSON