A tour of Choral

Welcome to the Choral tutorials, where we are going to have a brief tour of Choral’s key linguistic features and a few examples.1 We’re still working quite a bit on improving Choral and this website, which are still in their early lives. Feedback and proposals are welcome at the github repository of this website.

Make sure that you’ve read our home page first. Once you’re ready, you can begin going through our tutorials by clicking the button at the end of this page. If you want to try the examples listed in the documentation, please download the Choral compiler first.2

All the code that we show in the tutorials (and more) is available at the following code repository.


The tutorials assume that you’re familiar with Java or a similar language. Since Choral’s aim is to produce “idiomatic” Java libraries, Choral incorporates many features from the Java language, like classes, interfaces, generics, inheritance, and method overloading.3

  1. Much of the text in these tutorials is an adaptation of material found in the article Choreographies as Objects

  2. We’re working on adding an online editor. In the meantime, you can run Choral from the command line. 

  3. Java programmers can use lambda expressions with the APIs of the libraries generated by Choral. We do not have a syntax for lambda expressions in Choral code implemented yet.