InstantJ is a library you can use to compile and execute Java code or evaluate expressions written in Java. This is done on the fly – there is no pre-compiling step necessary. This is ideal in cases where expressions are either assembled programmatically at runtime, are read from descriptors or received from user-input.
Category Archives: JVM Language
JAVAR
JAVAB
JAVAB is a prototype bytecode tool that can automatically detect and automatically exploit implicit loop parallelism in bytecode, i.e. the architectural neutral instructions of the JVM. Implicit parallelism is made explicit by means of the multi-threading mechanism provided by the JVM.
OpenJava
OpenJava is an extensible language based on Java(TM). The OpenJava MOP (Metaobject Protocol) is the extension interface of the language. Through the MOP, the programmers can customize the language to implement a new language mechanism. It is fully written in Java of JDK 1.1, so it can be run on any platform which supports Java Virtual Machine of JDK 1.1. And, the generated codes are written in regular Java language, so the user’s products can be run on any platform which supports JVM of JDK 1.0 or JDK 1.1.
Jamie
Jamie is a preprocessor for Java that fills the gap between interfaces and multiple inheritance. Jamie doesn’t give you multiple inheritance, though; it gives you multiple delegation (i.e., it gives you subclassing without subtyping). Jamie is a preprocessor that automates delegation. You run it on your code, and it essentially produces the Java code you otherwise would have had to write yourself.
Scriptic
Scriptic is a language extension that simplifies Java programming. Scriptic includes the following: Simple and concise constructs for expressing choice, parallelism, breaking, and iterations. Simply write an ampersand instead of a semicolon: you will get parallelism instead of a sequence, etc. Easy access to multi-threading: Java code between {* and *} simply runs in its own thread A refinement construct (script) with a powerful parameter mechanism Communication between parallel processes using shared scripts An event-driven execution mechanism that ideally suits user interfaces, simulations, and others Scriptic has a strong theoretical background in Process Algebra. This foundation means that the language constructs for parallelism are well-defined.
Specialization classes for Java
Specialization classes for Java are a language extension for integrating forms of adaptive behavior in an existing program. An adaptive class is defined by attaching a number of alternative implementations to a regular Java class, that complement the existing, default implementation. Each alternative implementation is defined by a specialization class, and is to be used in some specific situation. These situations are defined in terms of the internal state of the (instances of the) class, via predicates on the instance variables.
Borneo
Borneo is a dialect of the Java language designed to have true support for the IEEE 754 floating point standard. Java’s specification creates several problems for numerical computation. Only a proper subset of IEEE 754’s required features are supported by Java; useful IEEE 754 features are either explicitly forbidden or omitted from the Java specification. Java does not allow use of the IEEE 754 recommended double extended format on the x86. Using the double extended format often protects simple numerical formulas from floating point anomalies. Strict adherence to Java’s floating point semantics leads to significant performance penalties on popular architectures, including both the x86 and PowerPC. To address these problems, the Borneo language changes and extends Java so that all IEEE 754 features can be expressed and so that new numeric types can be easily created.
xkjc
Kiev
Here is the authors description: “Kiev is an extension of Java language with closures, multi-methods, multiple inheritance, user-defined and overloaded operators, virtual fields (properties), packed fields and more. It also has an embedded, fully integrated AI engine. Kiev compiler supports plugins and allows easy meta-programming by direct tree rewriting. Kiev is now used as thebase compiler for SymADE (see)”