|
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.
|