pec embedded compiler
Haskell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Language
Pec
lib
src
test_cases
.gitignore
C.grm
CHANGES
DESIGN
FAQ
LICENSE
LLVM.grm
Makefile
MkPec.hs
Pds.grm
Pec.grm
Pir.grm
README
Setup.hs
THANKS
TODO
pec.cabal

README

Introducing the pec language and pec embedded compiler.

The intent of pec is to provide a drop-in replacement for C, but with
modern language features.  Pec is a procedural language with a
functional/declarative feel.  Programming in pec is very similar to
monadic programming in Haskell.  The primary use case for pec is to
provide a productive environment for writing safe, efficient, embedded
applications.

Feature list
  - Easy C integration
  - No garbage collection
  - Strong typing with Hindley-Milner type inference
  - Safe pointers, no indexing out of bounds
  - Variants, arrays, tuples, records, arbitrary sized integers
  - User defined, polymorphic data structures
  - Parametric polymorphism, limited ad-hoc polymorphism
  - Modules
  - Compiles to C and LLVM
  - Haskell-ish syntax/layout
  - BSD license

Building
  - type 'make'
  - resolve all hackage dependencies
  - type 'make' again
  - go and get a cup of coffee :)

Pec (the language and the compiler) is in the alpha stage of
development.  The compiler is implemented in Haskell and has a very
small codebase (thanks to several existing Haskell tools/libraries).

You can download and install pec via cabal or access the git
repository on github (git@github.com:stevezhee/pec.git).  You'll need
to have a c compiler installed to build the examples.

Any feedback on the design and/or implementation of pec would be
greatly appreciated :)

Thanks,
Brett
brettletner at gmail dot com