Orc is ...

... a novel language for distributed and concurrent programming which provides uniform access to computational services, including distributed communication and data manipulation, through sites. Using four simple concurrency primitives, the programmer orchestrates the invocation of sites to achieve a goal, while managing timeouts, priorities, and failures.

Orc 2.1.2 is available for download (release notes)

What can I use Orc for?

  • As a general purpose programming language for concise encoding of concurrent and distributed applications. See a probabilistic solution to the dining philosophers problem, or try out some simple programs that combine concurrency and synchronization with fault-tolerance and time-out.
    hide this demo
  • As a web scripting language to create a web-service mashup in a few minutes. Orc's emphasis on concurrency makes mashups much simpler to write than in other scripting languages. See a simple search mashup that starts a Bing search and a Google search simultaneously and prints the first set of responses. You can create your own mashup here.
  • As an executable specification language for workflow applications and process coordination problems. Read about how Orc can represent many common workflow patterns

Read more about the ideas behind Orc, or dive in to Orc in 15 minutes.

Get Started

Get Involved

Contact Us

Supporting Agencies

This research is supported in part by funding from the National Science Foundation. Any opinions, findings, and conclusions or recommendations expressed on this website are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Last updated 2017-05-31