An overview of the ciao multiparadigm language and program development environment and its design philosophy

Hermenegildo, Manuel V. and Bueno Carrillo, Francisco and Carro Liñares, Manuel and López García, Pedro and Morales Caballero, José Francisco and Puebla Sánchez, Alvaro Germán (2008). An overview of the ciao multiparadigm language and program development environment and its design philosophy. In: "Concurrency, Graphs and Models". Lecture Notes in Computer Science (5065). Springer Berlin Heidelberg, pp. 209-237. ISBN 978-3-540-68676-7. https://doi.org/10.1007/978-3-540-68679-8_14.

Description

Title: An overview of the ciao multiparadigm language and program development environment and its design philosophy
Author/s:
  • Hermenegildo, Manuel V.
  • Bueno Carrillo, Francisco
  • Carro Liñares, Manuel
  • López García, Pedro
  • Morales Caballero, José Francisco
  • Puebla Sánchez, Alvaro Germán
Editor/s:
  • Degano, Pierpaolo
  • De Nicola, Rocco
  • Meseguer, José
Item Type: Book Section
Title of Book: Concurrency, Graphs and Models
Date: 2008
ISBN: 978-3-540-68676-7
Subjects:
Faculty: Facultad de Informática (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

We describe some of the novel aspects and motivations behind the design and implementation of the Ciao multiparadigm programming system. An important aspect of Ciao is that 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 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 objects, predicates, 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 program optimizations. Such optimizations produce code that is highly competitive with other dynamic languages or, when the highest levéis of optimization are used, even that of static languages, all while retaining the interactive development environment of a dynamic language. The environment also includes a powerful auto-documenter. 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 the format of a paper, pointing instead to the existing literature on the system.

More information

Item ID: 14603
DC Identifier: http://oa.upm.es/14603/
OAI Identifier: oai:oa.upm.es:14603
DOI: 10.1007/978-3-540-68679-8_14
Official URL: http://link.springer.com/chapter/10.1007%2F978-3-540-68679-8_14
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 07 Mar 2013 07:33
Last Modified: 21 Apr 2016 14:20
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM