Skip to content

concurrency/nocc

Repository files navigation

NOCC: Concurrent Compiler Framework

NOCC is an experimental compiler framework for CSP-based concurrent languages, as well as others, generating code for a variety of targets (real and abstract). NOCC itself aims to provide a generic compiler framework, of sorts, with particular source languages and output targets added on as needed. Languages are generally compiled for a single (fixed) target, though there is scope for flexibility.

NOTE: the compiler is undergoing some structural work to change it from 32-bit to 64-bit. The code as it was on 08/07/2016 is in the "32bit" branch. So for a while, it'll probably not work right.

Well Supported

Currently implemented to a fairly reasonable extent:

  • AVR assembler (for 8-bit Atmel AVRs), generating flash and eeprom images.

Under Construction

Somewhat under construction, but functional in some ways:

  • Guppy parallel programming language, targeting the CCSP run-time scheduler via CIF.
  • occam-pi parallel programming language, targeting ETC / KRoC.
  • MCSP expression language, targeting ETC / KRoC.

Just Playing

And some extra things that I've poked around with, but haven't gotten very far on:

  • escape analysis language, and interactive processing / exploration of these.
  • haskell front-end (hopp) parser, to digest parse-trees generated by another compiler.
  • RCX BASIC, a simple programming language for the LEGO Mindstorms RCX (intended to code-gen to RCX bytecode).
  • tree-rewriting language, an abstract way of specifying parse-tree transformations within nocc.

About

new occam-pi compiler framework (experimental)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published