Java Intermediate Language
From Wikipedia, the free encyclopedia
- For the Alloy Wheel Casting mark JIL, see JIL standard.
In computer science, Java Intermediate Language is an intermediate language (which is a subset of XML and SGML) representing the type structure of a Java program. The language was proposed by the team of SableVM in McGill University in January 2002 to aid the analysis of a Java program with the goals of scalability and good performance.
The language has not seen much adoption outside the Sable team.
[edit] Example
Consider the following piece of Java code.
public MyClass implements MyInterface extends MySupperClass {
int MyField;
void MyMethod (double x, double y) {
double z;
z = x + y;
this.MyField = z
}
}
This piece can be expressed in the language, as follows:
<jil>
<class name="MyClass" extends="MySupperClass">
<modifiers><modifier name="public" /></modifiers>
<interfaces><interface name="myinterface" /></interfaces>
<fields>
<field name="MyField" type="int" />
</fields>
<methods>
<method name="MyMethod" returntype="void">
<parameters>
<parameter name="x" type="double" />
<parameter name="y" type="double" />
</parameters>
<locals>
<local name="z" type="double" />
</locals>
<statements>
<!-- Each statement is expressed by some intermediate format for
code generator like three address code. In the below
a language called baf is used. -->
<baf>
<![CDATA[
$r2 = $r0 + $r1;
this.MyField = (double) $r2;
]]>
<!-- Here, we are assuming x is expressed as $r0, y $r1 and z $r2.
</baf>
</statements>
</method>
</methods>
</class>
</jil>

