Ux4hs5pxn3lp86yhoely
SkillsCast

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

11th October 2018 in London at CodeNode

There are 38 other SkillsCasts available from Haskell eXchange 2018

Please log in to watch this conference skillscast.

731745991 640x360

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:

Thanks to our sponsors

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.

SkillsCast

Please log in to watch this conference skillscast.

731745991 640x360

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:

Thanks to our sponsors

About the Speaker

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.

Photos