Ivory is an embedded domain specific language (EDSL) which aims to provide a systems-level programming language that removes some common pitfalls of programming in C, without sacrificing expressivity.
This repository includes a user guide and some examples Ivory programs.
ivory
: the Ivory language implementation and interpreterivory-backend-c
: a backend for compiling Ivory programs to Civory-examples
: sample Ivory programsivory-opts
: an optimization framework and some optimization implementations, for the Ivory AST.ivory-bitdata
: a macro language library for specifying bit-precise Ivory operations.ivory-hw
: a macro language library for writing hardware drivers in Ivory. (Still a work in progress.)
Ivory is written in Haskell and uses several recent GHC extensions. It is known to work with with GHC 7.6.2.
We recommend using cabal-dev to manage a sandbox containing these Ivory language packages and any programs which use them.
Copyright 2013 Galois, Inc.
Licensed under the BSD 3-Clause License; you may not use this work except in compliance with the License. A copy of the License is included in the LICENSE file.