Tom Hall

Process Calculi for The Working Programmer

Process Calculi for The Working Programmer

At the turn of the century mathematicians were trying to mechanise mathematics, fortunately they did not succeed. Back then ‘computer’ was a job title for a person and not a silicon machine and logicians were inventing ways of unambiguously describing procedures, the best known being the Turing Machine and the Lambda Calculus.

Process calculi are ways of formally modelling concurrent and distributed computation. We all know the move to multicore is making writing programs harder and lots of us are writing distributed systems and having to deal with all the interesting ways programs can fail.

After a brief history of different approaches to modelling concurrency, we will split the time between the formalisms and languages that implement them.

  • Lambda calculus and Lisp.

  • Communicating sequential processes and it’s influence on core.async and Go.

  • \pi-calculus and Pict

Talk objectives: Introduce formal systems to describe concurrent computation and languages that implement them

Target audience: People unafraid of mathematics, curious about how formal systems work and keen to see them in action

About Tom

Doing a mixture of Dev and Ops that might be called DevOps at uSwitch. Mathematician, theatre fan, occasional mountaineer, part time runner, thoroughly nice chap, available in fine bookstores everywhere.


Github: thattommyhall

Twitter: @thattommyhall

Back to conference page