Using Cloud Haskell find out in detail about two process calculi, pi Calculus and its natural successor rho calculus.
At LambdaConf 2018 Pawel Szulc gave an amazing introduction to process calculus and how they can describe high-level interactions.
Understanding Distributed Calculi in Haskell
In the late 1960s, it was already a well-established fact that any arbitrary, complex programming language can be represented as an evidently tinier "core" language. Lambda calculus, or Turing machines, are the most well-known examples of such languages. However, they all shared a common constraint: the ability to model only sequential computations. With the rise of distributed systems and multicore architectures, industry has needed a new formalism to represent calculations that run concurrently. This talk is an introduction to process calculus, a family of related formalisms that model concurrent systems. They describe high-level interactions between a collection of independent processes and also algebraic laws that allow process descriptions to be analyzed and their equivalences reasoned about.
This talk describes in detail two process calculi: pi Calculus and its natural successor rho calculus. A Haskell library called distributed-process (also known as Cloud Haskell) will be used to show live code examples. Cloud Haskell is a library which allows message-passing programming style, similar to the one known in Erlang or Akka (Scala). Attendees should be familiar with simple Haskell syntax and lambda calculus, however some limited introduction to both the language and the formalism will be covered, as well.