CPSC-662: Distributed Computing: Projects


Project 1: A Distributed Interpreter

In this project, we will use a number of different communication mechanisms (TCP sockets, RPC) to implement a distributed/parallel interpreter of a LISP-like language. The handout for this project can be found here (was handed out in class).

We will build the interpreter for a very simple subset of LISP, which we may call EFFELLE. A short tutorial on programming in EFFELLE is given here

The code for the centralized interpreter for EFFELLE is available here

A better version of the interpreter is available here. This version has an optional garbage collector (read the README file) and supports short versions of arithmetic operators (e.g. '-' instead of MINUS).


Project 2: Software Messaging Bus

In this project, we will implement a software infrastructure - appropriately called a software bus - for atomic ordered multicast of messages. We will do this with and without the use of Multicast IP.

The handout for this project can be found here.

A short introduction to the use of Multicast IP can be found here.

The source file for the feeder can be found here.


Project 3: Distributed Shared Memory

In this project, we will implement a simple Distributed Shared Memory System using the Unix memory management infrastructure.

The handout for this project can be found here.

The source code for a simple test program can be found here.


Riccardo Bettati
Last modified: Wed Feb 3 15:59:29 CST 1999