Skip to content

sungshik/1cplt

Repository files navigation

1CPLT

Introduction

Implementing distributed systems is hard. One of the complicated challenges is to "prove"—broadly construed—the absence of communication deadlocks among message-passing processes. A communication deadlock is a form of misbehavior that arises when processes get stuck in cyclic communication dependencies. For instance, Alice might await a message from Bob, while Bob might await a message from Alice. As neither Alice nor Bob sends a message, they are stuck forever.

Choreographic programming (CP) is a method that aims to make implementing distributed systems easier. The benefit of the method is that choreographic programs, called "choreographies", are free of communication deadlocks by construction: if a choreography is well-formed and well-typed at compile-time, then the processes will not get stuck in cyclic communication dependencies at execution-time. For instance, it is impossible in CP to let Alice and Bob await messages from each other without sending any.

The 1CP Language and Tooling (1CPLT) is an extension of Visual Studio Code to apply first-person choreographic programming (1CP) in practice. It is implemented in Rascal. This repository contains:

  1. examples;
  2. an LSP server;
  3. the extension.

References

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published