[To be fleshed out].
Thorn is a PL project joint with IBM. We are creating an extensible scripting language suitable for both prototyping and dependable systems. Key features include gradual typing, isolated processes, a PL-level plugin architecture, dynamic typing and a functional slant.
Contact person: Jan Vitek (jv@cs.purdue.edu)
Thorn is in dire need of standard libraries. One possible project is developing certain parts of the standard library, which can be either dynamically typed, statically typed with generics, or gradually typed. Thorn especially needs I/O libraries, some of which may be developed as individual isolated processes communicated with in an asynchronous fashion.
Investigate the performance of Thorn by porting existing benchmarks, from e.g., Erlang and Java, to Thorn. We are interested in both hard aspects (performance, speed, memory) and softer aspects like expressiveness and how “natural” Thorn programming is.
Use Thorn's plugin architecture to implement a soft or hybrid typing plugin that inserts dynamic checks into code with uncomplete type information. Some preliminary work exist, both definitions of types, parsing type syntax, some type inference, etc.
Thorn needs debugging support, preferably inside a IDE like Eclipse or Netbeans. Stepping, watches, break points etc.
Thorn has a fairly comprehensive test suite that sadly is somewhat outdated. As a good first step to learn Thorn is writing test cases and helping us out with improving the test suite. One thing on the TODO-list is wrapping each test around a timeout function that kills the test if it fails to terminate within certain time.
We have developed an Eclipse plugin for programming with thread-local data. This plugin implements an extended Java type checker that works on Java 1.5-style annotations.
As a separate project, we have developed a type system for Joelle, an extension to Java for programming concurrent applications in the active objects style. A valid Joelle program does not share mutable state between active objects, can pass objects by reference by transferring ownership, and infer a minimal safe cloning operation for minimal overhead. The thread-local system, while different, is a good starting point for implementing Eclipse support for Joelle. We are interested in:
Contact person: Tobias Wrigstad (wrigstad@cs.purdue.edu)