O CIAOPP é uma estrutura de processador de programa para a CIAO. A CIAOPP executa uma série de tarefas de depuração, análise e transformação de origem a fonte:
Inferência de propriedades dos predicados e literais do programa ( tipos , modos e outras propriedades de instanciação variável , não falha , determinação , limites do custo computacional , limites nos tamanhos dos termos do programa etc.).
Certos tipos de depuração e verificação estáticas, encontrando erros antes de executar o programa. Isso inclui a verificação de como os programas chamam os predicados da biblioteca do sistema e também a verificação das afirmações presentes no programa ou em outros módulos usados pelo programa. Tais afirmações representam especificações essencialmente parciais do programa.
Vários tipos de transformações de origem para fonte, como especialização do programa , fatiamento , avaliação parcial , paralelização do programa (levando em consideração o controle de granularidade ), inclusão de testes de tempo de execução para afirmações que não podem ser verificadas completamente em tempo de compilação etc.
As informações geradas pela análise e as afirmações nas especificações são todas escritas na mesma linguagem de asserção , que por sua vez também são usadas pelo gerador de documentação do sistema CIAO, lpdoc .
Esse repositório contém a estrutura genérica do pré -processador, juntamente com algumas análises básicas, transformações e suporte ao idioma. Outros recursos (incluindo suporte para uma variedade de linguagens de programação) são distribuídos como pacotes separados.
A CIAOPP é distribuída sob a licença pública geral da GNU.
Por padrão, a CIAO detectará e construirá o CIAOPP durante a compilação do sistema. Para personalizar as opções de configuração padrão, consulte as instruções de instalação da CIAO.
É possível fazer uma construção e instalação separadas do CIAOPP com o seguinte comando:
$ ciao get ciaopp