Orcc : Dataflow Programming Made Easy

Orcc is an open-source Integrated Development Environment based on Eclipse and dedicated to dataflow programming. The primary purpose of Orcc is to provide developers with a compiler infrastructure to allow software/hardware code to be generated from dataflow descriptions. Orcc does not generate assembly or executable code directly, rather it generates source code that must be compiled by another tool.

Visual graph editing

An intuitive graph editor that enables fast and easy building of dataflow network using visual programming.

A few mouse clicks are sufficient to create a node and assign it to an existing component from the project, or to create an edge that represents the communication channels between two nodes. The editor also supports hierarchical representation, assigning a whole subnetwork to a graph node, and hierarchical navigation, opening a subnetwork with a simple click on a graph node.

Based on the Xtext framework, the editor implements all features expected for a modern and efficient Domain-Specific Language editor. The development environment is able to parse the actors and build their intermediate representation on-the-fly, in a incremental fashion, allowing fast simulation and compilation.

Fast debugging and validation

Orcc introduces innovative features for the debugging of dataflow programs.

Orcc also brings a complete Java-based simulator which allows developers to quickly test their applications without taking in consideration low-level details relative to the target platform. The simulator can be launched directly from eclipse to execute any RVC-CAL application. Indeed, the simulator simply interprets our intermediate representation of networks and actors, but it is however able to perform all basic interactions required to perform a functional validation, such as displaying text, images or videos to the screen.

Develop once, run everywhere

The embedded compiler is able to generate both hardware or software code from a single description. Then, generated implementations can be executed on large panel of platforms (GPP, DSP, FPGA, etc) thanks to the available runtime libraries.

Orcc toolset also includes a dedicated Virtual Machine, the Just-in-time Adaptive Decoder Engine (Jade) based on LLVM infrastructure, that can dynamically produce machine code for a wide range of software platforms.