SableVM was a
clean room implementation of
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
interpreter implementing the
Java virtual machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describ ...
(
VM) specification, second edition. SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant (JVM spec,
Java Native Interface
In software design, the Java Native Interface (JNI) is a foreign function interface programming framework that enables Java code running in a Java virtual machine (JVM) to call and be called by
native applications (programs specific to a hardwa ...
, Invocation interface, Debug interface, etc.) Java Virtual Machine that would be easy to maintain and to extend. It is now no longer being maintained.
The implementation was a part of the effort in the early 2000s to break the
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
ecosystem free from
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, ...
's control.
Overview
The core engine is an
interpreter which used ground-breaking techniques to deliver performance that can approach that of a "naive"
just-in-time (JIT) compiler, while retaining the
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
advantages of interpreters:
portability
Portability may refer to:
*Portability (social security), the portability of social security benefits
* Porting, the ability of a computer program to be ported from one system to another in computer science
** Software portability, the portability ...
,
maintainability
In engineering, maintainability is the ease with which a product can be maintained to:
* correct defects or their cause,
* Repair or replace faulty or worn-out components without having to replace still working parts,
* prevent unexpected working ...
and
simplicity
Simplicity is the state or quality of being simple. Something easy to understand or explain seems simple, in contrast to something complicated. Alternatively, as Herbert A. Simon suggests, something is simple or complex depending on the way we ...
. This simplicity makes SableVM's
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
very accessible and easy to understand for new users/programmers.
SableVM is
Free Software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
— it is licensed under the
GNU
GNU () is an extensive collection of free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any ...
Lesser General Public License (
LGPL). It also makes use of
GNU Classpath
GNU Classpath is a free software implementation of the standard class library for the Java programming language. Most classes from J2SE 1.4 and 5.0 are implemented. Classpath can thus be used to run Java-based applications. GNU Classpath is a pa ...
(copyrighted by the
FSF) which is licensed under the
GNU General Public License with linking exception.
SableVM is the first
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
virtual machine for Java to include the support for
JVMDI
The Java Platform Debugger Architecture (JPDA) is a collection of APIs to debug Java code.
* Java Debugger Interface (JDI) – defines a high-level Java language interface that developers can easily use to write remote debugger application tools. ...
(Java Virtual Machine Debugging Interface) and
JDWP (Java Debug Wire Protocol). These standard Java debugging interfaces are used for example by
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
to provide a rich and user-friendly Java development environment.
Java Intermediate Language
Some versions of the SableVM use Java Intermediate Language, an intermediate language (which is a subset of
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
) representing the type structure of a
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
program. The language was proposed by the team of SableVM in
McGill University
McGill University (french: link=no, Université McGill) is an English-language public research university located in Montreal, Quebec, Canada. Founded in 1821 by royal charter granted by King George IV,Frost, Stanley Brice. ''McGill Universit ...
in January 2002 to aid the analysis of a Java program with the goals of scalability and good performance.
[Eng, David. Combining static and dynamic data in code visualization. Vol. 28. No. 1. ACM, 2002.] The language has not been widely adopted.
Consider the following piece of Java code.
public MyClass implements MyInterface extends MySupperClass
This piece can be expressed in the language, as follows:
DATA[
$r2 = $r0 + $r1;
this.MyField = (double) $r2;
>
See also
* List of Java virtual machines
* Free Java implementations
References
External links
*
SableVM Development sub-siteInformation on debugging with SableVM and EclipseJava Intermediate Language
{{Java Virtual Machine
Cross-platform software
Discontinued Java virtual machines