pec: pec embedded compiler

[ bsd3, language, library, program ] [ Propose Tags ]

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, performant embedded applications.


[Skip to Readme]

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.1, 0.2.0, 0.2.1, 0.2.2, 0.2.3
Dependencies array, base (>=4 && <5), cmdargs, derive, directory, filepath, mtl, process [details]
License BSD-3-Clause
Copyright Brett letner 2011
Author Brett Letner <brettletner@gmail.com>
Maintainer Brett Letner <brettletner@gmail.com>
Category Language
Source repo head: git clone git://github.com/stevezhee/pec.git
Uploaded by BrettLetner at 2011-09-14T03:27:29Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables pec
Downloads 4221 total (17 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for pec-0.1

[back to package description]
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, performant 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, vectors, tuples, records, arbitrary sized integers
  - User defined, polymorphic data structures
  - Parametric polymorphism, ad-hoc polymorphism, laziness (strict by
    default), user-defined operators, etc.
  - Modules
  - Compiles to LLVM (C planned)
  - Haskell-ish syntax/layout
  - BSD license

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).

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

Thanks,
Brett
brettletner at gmail dot com