Skip to content

DistRap/ivory

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Workflow Status

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 example 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-eval: native evaluation of Ivory programs
  • 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
  • ivory-quickcheck: QuickCheck driver for ivory
  • ivory-serialize: binary serialization support for Ivory data types
  • ivory-stdlib: Ivory standard library
  • ivory-tasty: unit testing helpers for testing Ivory programs

Usage

See ivory-tower-nix for complete guide on using Ivory to build embedded firmwares.

It is possible to use the repository with recent cabal via cabal.project. No Hackage releases are planned since this is a fork of older code base.

Packages

No packages published

Languages

  • Haskell 66.5%
  • TeX 20.7%
  • Isabelle 10.2%
  • C 2.4%
  • Makefile 0.1%
  • Shell 0.1%