Squawk virtual machine
Encyclopedia
Squawk is a Java micro edition virtual machine for embedded system and small devices. Most virtual machines for the Java platform are written in low level native languages such as C
/C++
and assembler
; what makes Squawk different is that Squawk's core is mostly written in Java
. (This is called a meta-circular interpreter
.) A Java implementation provides ease of portability, and a seamless integration of virtual machine and application resources such as objects, threads, and operating-system interfaces.
The Squawk Virtual Machine figure can be simplified as:
The research project was inspired by Squeak
. Squawk has a Java ME
heritage and features a small memory footprint. It was developed to be simple with minimal external dependencies. Its simplicity made it portable and easy to debug and maintain. Squawk also provides an isolated mechanism by which an application is represented as an object. In Squawk, one or more applications can run in the single JVM. Conceptually, each application is completely isolated from all other applications.
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
and assembler
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
; what makes Squawk different is that Squawk's core is mostly written in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
. (This is called a meta-circular interpreter
Meta-circular evaluator
A meta-circular evaluator is a special case of a self-interpreter in which the existing facilities of the parent interpreter are directly applied to the source code being interpreted, without any need for additional implementation...
.) A Java implementation provides ease of portability, and a seamless integration of virtual machine and application resources such as objects, threads, and operating-system interfaces.
The Squawk Virtual Machine figure can be simplified as:
- Write as much of the VM in Java as possible
- Targeting small, resource constrained devices
- Enable Java for micro-embedded development
The research project was inspired by Squeak
Squeak
The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...
. Squawk has a Java ME
Java Platform, Micro Edition
Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...
heritage and features a small memory footprint. It was developed to be simple with minimal external dependencies. Its simplicity made it portable and easy to debug and maintain. Squawk also provides an isolated mechanism by which an application is represented as an object. In Squawk, one or more applications can run in the single JVM. Conceptually, each application is completely isolated from all other applications.
See also
- Sun SPOTSun SPOTSun SPOT is a wireless sensor network mote developed by Sun Microsystems. The device is built upon the IEEE 802.15.4 standard...
- JikesRVMJikesRVMJikes RVM is a mature open source virtual machine that runs Java programs. Unlike most other JVMs it is written in Java, a style of implementation termed meta-circular.-History:...
, another JVM written mostly in Java - RubiniusRubiniusRubinius is an alternative Ruby programming language implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 Blue Book design, Rubinius seeks to"provide a rich, high-performance environment for running Ruby code."-Goals:...
, a VM for Ruby written in Ruby - List of Java virtual machines
External links
- Squawk main website
- Squawk Project
- SunSPOTs and Squawk technology Podcast
- A Java Virtual Machine Architecture for Very Small Devices
- The Squawk Virtual Machine: Java(TM) on the Bare Metal
- Javaone 2006 Squawk for Wireless Sensor Networks
- Application-Driven Customization of an Embedded Java Virtual Machine
- Ahead of time deployment in ROM of a Java-OS
- Project Sun Spot
- Squawk Poster
- Youtube video about Squawk