A tutorial on program development and optimization using the Ciao preprocessor

Bueno Carrillo, Francisco and López García, Pedro and Puebla Sánchez, Alvaro Germán and Hermenegildo, Manuel V. (2006). A tutorial on program development and optimization using the Ciao preprocessor. Monografía (Manual). Facultad de Informática (UPM), Madrid, Spain.

Description

Title: A tutorial on program development and optimization using the Ciao preprocessor
Author/s:
  • Bueno Carrillo, Francisco
  • López García, Pedro
  • Puebla Sánchez, Alvaro Germán
  • Hermenegildo, Manuel V.
Item Type: Monograph (Manual)
Date: 12 January 2006
Subjects:
Faculty: Facultad de Informática (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of HERME_TCREP_ANDMANS_2006-5.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

We present in a tutorial fashion CiaoPP, the preprocessor of the Ciao multi-paradigm programming system, which implements a novel program development framework which uses abstract interpretation as a fundamental tool. The framework uses modular, incremental abstract interpretation to obtain information about the program. This information is used to validate programs, to detect bugs with respect to partial specifications written using assertions (in the program itself and/or in system libraries), to generate and simplify run-time tests, and to perform high-level program transformations such as multiple abstract specialization, parallelization, and resource usage control, all in a provably correct way. In the case of validation and debugging, the assertions can refer to a variety of program points such as procedure entry, procedure exit, points within procedures, or global computations. The system can reason with much richer information than, for example, traditional types. This includes data structure shape (including pointer sharing), bounds on data structure sizes, and other operational variable instantiation properties, as well as procedure-level properties such as determinacy, termination, non-failure, and bounds on resource consumption (time or space cost).

More information

Item ID: 14742
DC Identifier: https://oa.upm.es/14742/
OAI Identifier: oai:oa.upm.es:14742
Official URL: http://clip.dia.fi.upm.es/papers/ciaopp-tutorial.p...
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 04 Apr 2013 07:32
Last Modified: 27 Feb 2023 10:04
  • 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