GithubHelp home page GithubHelp logo

amato-gianluca / ciaopp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ciao-lang/ciaopp

0.0 1.0 0.0 12.43 MB

The Ciao Preprocessor

License: GNU Lesser General Public License v3.0

Shell 0.04% Prolog 99.96%

ciaopp's Introduction

The CiaoPP Program Processor

CiaoPP is a program processor framework for Ciao. CiaoPP performs a number of program debugging, analysis, and source-to-source transformation tasks:

  • Inference of properties of the predicates and literals of the program (types, modes and other variable instantiation properties, non-failure, determinacy, bounds on computational cost, bounds on sizes of terms in the program, etc.).

  • Certain kinds of static debugging and verification, finding errors before running the program. 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.

  • Several kinds of source to source program transformations such as program specialization, slicing, partial evaluation, 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 and the assertions in the specifications are all written in the same assertion language, which is in turn also used by the Ciao system documentation generator, lpdoc.

This repository contains the generic preprocessor framework together with some basic analyses, transformations, and language support. Other features (including support for a variety of programming languages) are distributed as separate bundles.

CiaoPP is distributed under the GNU general public license.

Installation

By default, Ciao will detect and build CiaoPP during system compilation. In order to customize the default configuration options, please refer to the Ciao installation instructions.

It is possible to do a separate build and install of CiaoPP with the following command:

$ ciao get ciaopp

ciaopp's People

Contributors

jfmc avatar igcontreras avatar victor-eds avatar pedro-lopez-garcia avatar danielaferreiro avatar djurjo avatar louisrustenholz avatar nataliacarpizo avatar ignaciocasso avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.