Publications related to the Transterpreter

The code is what makes the papers possible.

Contents

A Native Transterpreter for the LEGO Mindstorms RCX

CPA, June 8th-11th, 2007, University of Surrey
Download: PDF

The LEGO Mindstorms RCX is a widely deployed educational robotics platform. This paper presents a concurrent operating environment for the Mindstorms RCX, implemented natively using occam-pi running on the Transterpreter virtual machine. A concurrent hardware abstraction layer aids both the developer of the operating system and facilitates the provision of process-oriented interfaces to the underlying hardware for students and hobbyists interested in small robotics platforms.

Concurrency, Robotics, and RoboDeb

AAAI Robotics and Education, March 26-28, 2007, Palo Alto, California
Download: PDF

Robotics is an engaging and natural application area for concurrent and parallel models of control. To explore these ideas, we have developed environments and materials to support the programming of robots to do interesting tasks in a fundamentally concurrent manner. Our most recent work involves the development of RoboDeb (short for “Robotics/Debian”), a “virtual computer” pre-installed with the open-source Player API and Stage simulator to support classroom exploration of concurrency and robotic control using the occam-pi programming language.

Mobile Robot Control: The Subsumption Architecture and occam-pi

CPA, September 17-20, 2006, Edinburgh, Scotland.
Download: PDF

Brooks' subsumption architecture is a design paradigm for mobile robot control that emphasises re-use of modules, decentralisation and concurrent, communicating processes. Through the use of occam-pi the subsumption architecture can be put to use on general purpose modern robotics hardware, providing a clean and robust development approach for the creation of robot control systems.

A Cell Transterpreter

CPA, September 17-20, 2006, Edinburgh, Scotland.
Download: PDF

The Cell Broadband Engine is a hybrid processor which consists of a PowerPC core and eight vector co-processors on a single die. Its unique design poses a number of language design and implementation challenges. To begin exploring these challenges, we have ported the Transterpreter to the Cell Broadband Engine. The Transterpreter is a small, portable runtime for concurrent languages and can be used as a platform for experimenting with language concepts. This paper describes a preliminary attempt at porting the Transterpreter runtime to the Cell Broadband Engine and explores ways to program it using a concurrent language.

Native Code Generation Using the Transterpreter

CPA, September 17-20, 2006, Edinburgh, Scotland.
Download: PDF

We are interested in languages that provide powerful abstractions for concurrency and parallelism that execute everywhere, efficiently. Currently, the existing runtime environments for the occam-π programming language provide either one of these features (portability) or some semblance of the other (performance). We believe that both can be achieved through the careful generation of C from occam-π, and demonstrate that this is possible using the Transterpreter, a portable interpreter for occam-π, as our starting point.

A Foreign Function Interface Generator for occam-pi

CPA, September 18-21, 2005, Eindhoven, Netherlands.
Download: PDF

occam-pi is a programming language based on the CSP process algebra and the pi-calculus, and has a powerful syntax for expressing concurrency. occam-pi does not however, come with interfaces to a broad range of standard libraries (such as those used for graphics or mathematics). Programmers wishing to use these must write their own wrappers using occam-pi's foreign function interface, which can be tedious and time consuming. SWIG offers automatic generation of wrappers for libraries written in C and C++, allowing access to these for the target languages supported by SWIG. This paper describes the occam-pi module for SWIG, which will allow automatic wrapper generation for occam-pi, and will ensure that occam-pi's library base can be grown in a quick and efficient manner. Access to database, graphics and hardware interfacing libraries can all be provided with relative ease when using SWIG to automate the bulk of the work.

Towards Concrete Concurrency: occam-pi on the LEGO Mindstorms

SIGCSE’05, February 23–27, 2005, St. Louis, Missouri, USA.
Download: PDF

In a world of ad-hoc networks, highly interconnected mobile devices and increasingly large supercomputer clusters, students need models of computation that help them think about dynamic and concurrent systems. Many of the tools currently available for introducing students to concurrency are difficult to use and are not intrinsically motivating. To provide an authentic, hands-on, and enjoyable introduction to concurrency, we have ported occam- , a language whose expressive powers are especially compelling for describing communicating dynamic reactive processes, to the LEGO Mindstorms.

The Transterpreter: a Transputer interpreter

CPA, September 2004, Oxford Brookes University, Headington, UK
Download: PDF, PS

In this paper we introduce the Transterpreter, a small, portable virtual machine to support the execution of programs written in occam (a concrete expression of the Concurrent Sequential Processes algebra, or CSP) on the LEGO Mindstorm and other mobile robotics platforms.