Thorn is a dynamically-typed concurrent language in which
lightweight isolated processes communicate by message
passing. Thorn includes powerful aggregate data types, a
class-based object system, first-class functions, an
expressive module system, and a variety of features
supporting the gradual evolution of prototype scripts into
robust programs. For an introduction please see
our OOPSLA
paper. Thorn is a joint effort
between Purdue
University
and IBM
Research T.J. Watson Research Center.
Currently there are two different implementations of
Thorn. We have a compiler that targets the JVM and an
interpreter written in Java. The interpreter implements the
full language, while the compiler currently implements a
subset. The two implementations allow us to prototype
constructs in the interpreter before committing to
implementing them in the compiler. Like many other scripting
languages Thorn has an interactive read-eval-print-loop (for
both the compiler and the interpreter.) Check out our
online
demo of the Thorn interpreter!
Publications
Online Demo
Binary Release
Team:
- Bard Bloom (IBM Research)
- Brian Burg (Purdue University)
- John Field (IBM Research)
- Nicholas Kidd (Purdue University)
- Nathaniel Nystrom (University of Texas at Arlington)
- Johan Östlund (Purdue University)
- Gregor Richards (Purdue University)
- Rok Strnisa (University of Cambridge)
- Jan Vitek (Purdue University)
- Jason Ward (Purdue University)
- Tobias Wrigstad (Stockholm University)