Popularity
9.8
Stable
Activity
3.6
Growing
343
55
25

Monthly Downloads: 21
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Language     Ivory    
Latest version: v0.1.0.4
Add another 'ivory' Package

README

Build Status

Ivory

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. More information and tutorials are available on ivorylang.org.

The following paper describes the Ivory language:

  • Trevor Elliott, Lee Pike, Simon Winwood, Pat Hickey, James Bielman, Jamey Sharp, Eric Seidel, John Launchbury. Guilt-free Ivory. Haskell Symposium, 2015.

Please cite this paper for when citing the language.

Contents

  • ivory: the Ivory language implementation and interpreter
  • ivory-backend-c: a backend for compiling Ivory programs to C
  • ivory-examples: sample Ivory programs
  • ivory-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.
  • ivory-model-check: a backend for verifying Ivory programs with CVC4

Installing

Ivory is written in Haskell and uses several recent GHC extensions. It is known to work with with GHC 7.8.* and above.

We currently recommend using the Stack build tool for Ivory language packages and any programs which use them.

Copyright 2013-2015 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.

Contributing

This project adheres to the [Contributor Covenant code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to smaccm@galois.com.


*Note that all licence references and agreements mentioned in the ivory README section above are relevant to that project's source code only.