Please log in to watch this conference skillscast.
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)
- Functional Concurrency in .NET with C# and F# with Riccardo Terrell (Online Course on 7th - 10th December 2021)
- Haskell eXchange 2021: Novice Track (Online Conference on 15th November 2021)
- Haskell eXchange 2021: Pro Track (Online Conference on 16th - 17th November 2021)
- Using F# to Structure an Island of Simplicity (SkillsCast recorded in October 2021)
- Lightning Talk: F# as DSL for Complex Domains (SkillsCast recorded in October 2021)
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.