The cao package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

CAO Compiler


[Skip to ReadMe]

Properties

Versions0.1, 0.1.1, 0.1.1
Change logNone available
Dependenciesarray, base (==4.*), cmdargs, ConfigFile, containers, directory, dlist, filepath, language-c, mtl, pretty, process, yices [details]
LicenseGPL
AuthorCryptography and Information Security Group, HASLab - INESC TEC and Universidade do Minho
MaintainerPaulo Silva <paufil@di.uminho.pt>
CategoryCompiler, Cryptography, Language
Home pagehttp://haslab.uminho.pt/mbb/software/cao-domain-specific-language-cryptography
Bug trackermailto:paufil@di.uminho.pt
Executablescao
UploadedMon Apr 7 16:12:30 UTC 2014 by tfaoliveira

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for cao-0.1.1

[back to package description]
CAO Compiler
====================

0. Dependencies
---
To build the CAO Compiler you need: 
 - happy 
 - alex
 - cabal package manager

We recommend the installation of the Haskell Platform which contains all the aforementioned dependencies:
 http://hackage.haskell.org/platform/ 

1. Build instructions
---
$ cabal configure
$ cabal build
$ cabal install
---

2. Run dependencies (optional)
---
To run the CAO Compiler you may need:
 - Yices SMT solver (version 1)

This SMT solver is used to check some more complex conditions when typechecking a CAO program. 
The compiler works without Yices but some conditions may not be verified. A warning is shown in these cases.

3. Backend library dependencies
---
To compile the generated code with the backend library you need:
 - NTL 
 - GMP (optional)

NTL is available from 
 http://www.shoup.net/ntl/
GMP is available from 
 https://gmplib.org

Information about how to compile NTL with GMP can be found here:
 http://www.shoup.net/ntl/doc/tour-gmp.html

4. Run instructions
---
To see a description of all compiler options:
$ cao help

The basic compiler usage is:
$ cao comp [cao-file]

5. Example
---
In the 'example' directory you can find a CAO implementation of the SHA1 hash algorithm.
The Makefile provides an example of how a generated C program can be compiled and linked with the backend library.
You may have to adjust the script variable 'CAO_PATH' to the root directory of your installation.

Contact Information
-------------------

Bugs/Suggestions please mail to:

Manuel Barbosa - mbb@di.uminho.pt
Paulo Silva    - paufil@di.uminho.pt

Contributors:
-------------

B�bara Vieira - barbarasv@di.uminho.pt
David Castro   - dcastro@di.uminho.pt
H�der Pereira - hpereira@di.uminho.pt
Manuel Barbosa - mbb@di.uminho.pt
Miguel Marques - mmarques@di.uminho.pt
Nuno Rodrigues - nfr@di.uminho.pt
Paulo Silva    - paufil@di.uminho.pt
Tiago Oliveira - tfaoliveira@di.uminho.pt