Extending resource-bounded functional programming languages with mutable state and concurrency

Main Article Content

Stephen Gilmore
Kenneth MacKenzie
Nicholas Wolverson

Abstract

Camelot is a resource-bounded functional programming language which compiles to Java byte code to run on the Java Virtual Machine. We extend Camelot to include language support for Camelot-level threads which are compiled to native Java threads. We extend the existing Camelot resource-bounded type system to provide safety guarantees about the heap usage of Camelot threads. We demonstrate the usefulness of our concurrency extensions to the language by implementing a multi-threaded graphical network chat application which could not have been expressed as naturally in the sequential, object-free sublanguage of Camelot which was previously available.

Article Details

Section
Special Issue Papers