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árbara Vieira - barbarasv@di.uminho.pt David Castro - dcastro@di.uminho.pt Hélder 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