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)
- Safe and Reproducible Deployments with Immutable Infrastructure (in Online Event on 28th May 2020)
- The Secrets of the GHC Garbage Collector (in Online Event on 11th June 2020)
- Lightning Talk: Making and Testing Code Generators in Haskell (SkillsCast recorded in October 2019)
- Functional Lenses Through a Practical Lens (SkillsCast recorded in October 2019)
A Formal Approach to Distributed Systems: Implementing a Pi-calculus interpreter in Haskell
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.