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:
- 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. 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.