SableVM
Encyclopedia
SableVM is a clean room implementation
of Java bytecode
interpreter
implementing the Java virtual machine
specification, second edition.
SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant (JVM spec, Java Native Interface
, Invocation interface, Debug interface, etc.) Java Virtual Machine that would be easy to maintain and to extend. It is now no longer being maintained.
which uses state-of-the-art techniques to deliver performance that can approach that of a "naive" just-in-time (JIT) compiler
, while retaining the software engineering
advantages of interpreters: portability
, maintainability
and simplicity
. This simplicity makes SableVM's source code
very accessible and easy to understand for new users/programmers.
SableVM is Free Software
— it is licensed under the GNU
Lesser General Public License (LGPL). It also makes use of GNU Classpath
(copyrighted by the FSF
) which is licensed under the GNU General Public License with linking exception
.
SableVM is the first open source
virtual machine for Java to include the support for JVMDI (Java Virtual Machine Debugging Interface) and JDWP (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.
Clean room design
Clean room design is the method of copying a design by reverse engineering and then recreating it without infringing any of the copyrights and trade secrets associated with the original design. Clean room design is useful as a defense against copyright and trade secret infringement because it...
of Java bytecode
Bytecode
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...
interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
implementing the Java virtual machine
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
specification, second edition.
SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant (JVM spec, Java Native Interface
Java Native Interface
The Java Native Interface is a programming framework that enables Java code running in a Java Virtual Machine to call and to be called by native applications and libraries written in other languages such as C, C++ and assembly.-Purpose and features:JNI enables one to write native methods to...
, Invocation interface, Debug interface, etc.) Java Virtual Machine that would be easy to maintain and to extend. It is now no longer being maintained.
Overview
The core engine is an interpreterInterpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
which uses state-of-the-art techniques to deliver performance that can approach that of a "naive" just-in-time (JIT) compiler
Just-in-time compilation
In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...
, while retaining the software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
advantages of interpreters: portability
Porting
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...
, maintainability
Maintainability
In engineering, maintainability is the ease with which a product can be maintained in order to:* isolate defects or their cause* correct defects or their cause* meet new requirements* make future maintenance easier, or* cope with a changed environment...
and simplicity
Simplicity
Simplicity is the state or quality of being simple. It usually relates to the burden which a thing puts on someone trying to explain or understand it. Something which is easy to understand or explain is simple, in contrast to something complicated...
. This simplicity makes SableVM's source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
very accessible and easy to understand for new users/programmers.
SableVM is Free Software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
— it is licensed under the GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
Lesser General Public License (LGPL). It also makes use of GNU Classpath
GNU Classpath
GNU Classpath is a project aiming to create a free software implementation of the standard class library for the Java programming language. Despite the massive size of the library to be created, the majority of the task is already done, including Swing, CORBA, and other major parts. The Classpath...
(copyrighted by the FSF
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...
) which is licensed under the GNU General Public License with linking exception
GPL linking exception
A GPL linking exception modifies the GNU General Public License to create a new, modified license. Such modified licenses enable software projects which provide library code, to be "linked to" the programs that use them, without applying the full terms of the GPL to the using program...
.
SableVM is the first open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
virtual machine for Java to include the support for JVMDI (Java Virtual Machine Debugging Interface) and JDWP (Java Debug Wire Protocol). These standard Java debugging interfaces are used for example by Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
to provide a rich and user-friendly Java development environment.
See also
- Java Intermediate LanguageJava Intermediate LanguageIn computer science, Java Intermediate Language is an intermediate language representing the type structure of a Java program...
- List of Java virtual machines
- Free Java implementationsFree Java implementationsFree Java implementations are software projects that implement Oracle's Java technologies and are distributed under free software licences, thus making them free software...