SableVM
   HOME

TheInfoList



OR:

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 List ...
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 ( 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 List ...
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, the ...
'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,
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 comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
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, no ...
— it is licensed under the
GNU GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
Lesser General Public License (
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
). 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 p ...
(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 In computing, the Java Debug Wire Protocol (JDWP) is a communication protocol which is part of the Java Platform Debugger Architecture. It is used for communication between a debugger and the Java Virtual Machine, which it debugs. It allows to de ...
(Java Debug Wire Protocol). These standard Java debugging interfaces are used for example by Eclipse 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 List ...
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-site

Information on debugging with SableVM and Eclipse

Java Intermediate Language
{{Java Virtual Machine Cross-platform software Discontinued Java virtual machines