Photo
OCELOT

The Ocelot project is developing technologies for the next generation programming language. Our philosophy is to push the limits of what current analysis and run-time techniques can support, while adding language features of substantial value that are easy for programmers to use.

Each new feature is developed as a stand-alone extension to the Java programming language. The Ocelot components developed so far include:

  • Kava: a language with a completely orthogonal type system, in which everything is an object, even a single bit. Types like int are defined within the language as objects containing arrays of 32 elements of type bit. This allows much more of the language semantics to be defined inside of the language, provides a reference implementation for all operations, and makes it easy to support new "primitive" data types like complex numbers.

  • Guava: a language in which it is impossible to write programs with data races, thereby greatly simplifying the process of writing concurrent programs. Unlike other approaches to race-free languages, Guava requires very little in the way of annotations, keeping the programming model simple. Guava also supports read and write locking and multiple reader parallelism, which is essential for high-performance parallel computing.

  • ModJava: a module language for Java, which eliminates a great deal of the complexity of class loaders and class paths. It also makes it possible to easily load multiple versions of a module, or multiple instances each of which operates fully independently. Finally, ModJava supports visibility control which allows implementation to be exposed to selected trusted components (e.g. allowing the net library to access the internals of String) which can enormously increase performance.