Please log in to watch this conference skillscast.

As distributed-systems became more prevalent in the late 20th century, many computer scientists began to think of calculi that could represent the complex interaction of computer processes, both local and remote. It quickly became apparent that the lambda calculus could not adequately represent concurrent processes, and so, in the early 1990s, Robin Milner introduced the pi-calculus.

The pi-calculus is a formalization of how concurrent processes can interact through the sending and receiving of named values across channels. In a modern world where distributed systems are ubiquitous, development of such systems is often ad-hoc, unprincipled processes. Using theories of bi-simulation, structural congruence, and a notion of process equivalence, extensions of the pi-calculus allow a more formal approach to the design and implementation of these complex interactions between distributed-processes.

This talk will cover the foundations of pi-calculus, the theory of names it's based upon, and Thomas will present an interpreter written in Haskell using the 'distributed-process' library (cloud-haskell). He will discuss the benefits, drawbacks, and trade-offs when designing a distributed-system starting from a theoretical and formal foundation versus modern ad-hoc design principles. Lastly, extensions to the pi-calculus and their respective Haskell implementations will be discussed, setting the stage for more useful formalizations and libraries facilitating more stringent and rigorous distributed-system design and implementation to be added to the Haskell ecosystem.

**YOU MAY ALSO LIKE:**

- Lightning Talk: Elliptic Curve Cryptography (SkillsCast recorded in October 2017)
- Fast Track to RESTful Microservices (in London on 11th - 13th November 2019)
- Functional Concurrency in .NET with C# and F# (in London on 9th - 10th December 2019)
- Haskell eXchange 2019 (in London on 10th - 11th October 2019)
- µCon London 2020 - The Conference on Microservices, DDD & Software Architecture (in London on 27th - 29th May 2020)
- Lightning Talk: Independent Services, Throw Your Hands Up At Me (SkillsCast recorded in May 2019)
- But What About the UI? (SkillsCast recorded in May 2019)

### A Formal Approach to Distributed Systems: Implementing a Pi-calculus interpreter in Haskell

##### Thomas Dietert

Thomas is a Software Engineer at Adjoint, focused on building distributed ledger technologies for the private financial sector. He is interested in distributed-systems engineering, programming language theory, and the application of modern cryptography to build secure and robust protocols facilitating data privacy.