A Process Language Runtime for the .NET Platform

The Process Language Runtime (or PLR for short) is my M.Sc. project in Computer Science at the Technical University of Denmark. On this page you can download the source code and/or compiled binaries for the project, as well as the thesis itself. The DTU page of the thesis, with all publication information is at http://orbit.dtu.dk/All.external?recid=247200 (If necessary mark "Department records" and hit the "Search" button). The source code is licensed under the General Public License (GPL) v3.0. For the abstract of the thesis, see below.

Einar Egilsson

14.07.2009

Abstract:

Process languages, also known as process algebras or process calculi, are languages that are built up of distinct processes communicating with each other. Different process languages have different constructs, but most of the prominent ones have a common subset of constructs. That subset includes action prefixing, parallel composition of subprocesses and non-deterministic choice between paths.

The .NET platform is a popular development platform. One of its strengths is that it supports multiple languages running on the same underlying virtual machine. The languages compile down to a common bytecode format which means that the languages can interoperate and different parts of the same application can be built in different languages.

This thesis explores how well process languages can be integrated into the .NET environment and how they can interoperate with code written in other languages. The design and implementation of an extensible compiler back-end and a runtime library for process languages are presented, as well as two case studies of languages implemented using the common compiler and runtime, and a graphical tool to interact with running process language applications. Finally, a quick overview is given of how to integrate a process language into a state-ofthe-art integrated development environment.