concurrency / nocc

new occam-pi compiler framework (experimental)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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)

License:GNU General Public License v2.0


Languages

Language:C 90.8%Language:Assembly 6.0%Language:C++ 1.1%Language:PHP 0.9%Language:Shell 0.6%Language:SourcePawn 0.3%Language:Makefile 0.2%Language:XSLT 0.1%Language:Vim Script 0.1%Language:Awk 0.0%Language:Visual Basic 0.0%Language:Prolog 0.0%Language:LLVM 0.0%