The pec package

[Tags: bsd3, library, program]

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.


[Skip to ReadMe]

Properties

Versions0.1, 0.1.1, 0.2.0, 0.2.1, 0.2.2, 0.2.3
Change logCHANGES
Dependenciesarray, base (<5), Cabal, cmdargs, containers, deepseq, derive, directory, filepath, grm, mtl, old-time, pec, process, shake, syb, uniplate, wl-pprint [details]
LicenseBSD3
CopyrightBrett Letner 2011-2012
AuthorBrett Letner <brettletner@gmail.com>
MaintainerBrett Letner <brettletner@gmail.com>
CategoryLanguage
Source repositoryhead: git clone git://github.com/stevezhee/pec.git
Executablespecgencnt, pec, pecgen
UploadedWed Mar 28 12:30:48 UTC 2012 by BrettLetner
Downloads845 total (38 in last 30 days)
Votes
0 []
StatusDocs not available [build log]
All reported builds failed as of 2015-06-06 [all 2 reports]

Modules

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for pec-0.2.0

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