The language was designed and formalized by Rok Strniša and Matthew Parkinson.
Lightweight Java (LJ) is an imperative fragment
of Java. It is intended to be as simple
as possible while still retaining the feel of Java. LJ includes fields,
methods, single inheritance, dynamic method dispatch, and
method
overloading
. It does
not include support for local variables, field hiding, interfaces, inner
classes, or generics.
LJ is largely a simplification of Middleweight Java (MJ). A major difference w.r.t. Featherweight Java (FJ) is that LJ also models state, whereas FJ is purely functional. In this sense, LJ is similar to ClassicJava; however, unlike ClassicJava, LJ is a proper subset of Java, i.e. every LJ program is a valid Java program.
LJ is formalized rigorously: using the Ott tool, we obtain the typeset rules and its formal definition (in Isabelle/HOL) from the same source --- its Ott source files.
The above software is released under a New BSD license.
|
|