Chor
A choreography programming language for concurrent systems
Chor is a strongly-typed choreography programming language for distributed systems. In Chor, the behaviour of a system is written down as a global program (a choreography) where all the message exchanges between the participants are explicit. Choreographies are statically checked against protocol specifications, given as types, enabling type-directed global programming. Finally, Chor supports the automatic generation of systems from a choreography. With Chor, you do not have to worry about asynchronous communications or protocol compliance anymore. The language is based on strong theoretical bases, so that you can let its compiler do the jobs of checking your global programs and generating correct implementing code for you!