Title:                             
Implementing a Compiler/Interpreter for the Pi-calculus 
 
Lecturer:                       
Adrian Francalanza 
 
Subject Area(s):             
Compiler construction, concurrency 
 
Summary:                     
The project involves implementing a compiler and/or interpreter for a small but expressive language of concurrent programs called the Pi-calculus. At the end of the project, the student should get valuable experience in concurrent programming, extensive and transferable knowledge in the implementation language of choice (C++, Java, C#) and parsing/compilation tools, and useful exposure to formal specifications of languages. 
 
Description:                  
 The Pi-calculus is a small formal language (calculus) for expressing concurrent computation: its basic entities are processes and channels; computation is expressed as communication over these channels.  The Pi-calculus has been thoroughly studied for the last 25 years and extracted concepts have been introduced directly or indirectly (as libraries or packages) in existing commercial languages. Nevertheless, there are only a few existing implementations of the calculus itself and even fewer are suited for educational reasons. The aim of this project is to build a compiler/interpreter together with a wrapping IDE (Integrated Development Environment) for the calculus targeted for student who want to get a first hand experience at programming in the Pi-calculus. 
 
Deliverables:                  
Describe what the student is expected to produce. Include assessment criteria if appropriate. 
 
Prerequisites:                
Credits in Compiler theory and construction. Credits in parallel or concurrent programming.
 
Resources:                    
The development programming language of choice together with and compatible parsing/compiling tools and libraries 
 
References:                   
Communicating and Mobile Systems: the Pi-Calculus, Robin Milner, Cambridge University Press, ISBN 0521643201
Any good book on Compiler Construction.