Service Communautaire d'Information sur la Recherche et le Développement - CORDIS


ASAP Résumé de rapport

Project ID: IST-2001-38059
Financé au titre de: FP5-IST
Pays: Spain

CiaoPP - The Ciao Preprocessor

CiaoPP is the abstract interpretation-based pre-processor of the Ciao multi-paradigm program development environment. It uses modular, incremental abstract interpretation as a fundamental tool to infer information about programs. CiaoPP includes the PLAI generic abstract interpretation-based program analyser, which incorporates a wealth of analysis domains, which allow inference of many interesting properties of programs including types, modes and other operational variable instantiation properties, pointer aliasing, non-failure, determinacy, bounds on resource consumption (such as computational cost or sizes of data in the program), etc.

The inferred abstract information is used extensively to perform static program debugging and verification. This includes checking how programs call system library predicates and also checking the assertions present in the program or in other modules used by the program. Such assertions represent essentially partial specifications of the program. The abstract model of the program inferred by the analysers is used in the system to certify that an untrusted mobile code is safe w.r.t. the given policy (i.e., an abstraction-carrying code approach to mobile code safety).

Abstract information is also used for allowing several kinds of source-to-source program transformations such as program specialization, slicing, partial evaluation of a program, program parallelization (taking granularity control into account), inclusion of run-time tests for assertions which cannot be checked completely at compile-time, etc.

The information generated by analysis, the assertions in the system libraries, and the assertions optionally included in user programs as specifications are all written in the same assertion language, which is in turn also used by the Ciao system documentation generator, lpdoc. CiaoPP is currently released as open source code and it is in everyday use for research purposes at many sites.

There are two classes of potential users of CiaoPP: a) current researchers in abstract interpretation-based program analysis, which already use its extensive facilities as a harness in which to test their systems, and b) final users, which routinely use CiaoPP to debug, verify, optimise, and certify their programs.

Informations connexes


German PUEBLA, (Associate Professor)
Tél.: +34-91-3367449
Fax: +34-91-3366595