JSqueak – Smalltalk interpreter written in Java

21 June, 2008

Dan Ingalls has released JSqueak, a Squeak interpreter written in Java. 

JSqueak (formerly known as Potato) is less than 5000 lines of code, available under the MIT licence. It runs the Mini2.1 image, which is included for convenience. This image contains a complete Smalltalk development environment, including:

  • Rich text and Text editor
  • File browser (no file access in VM yet)
  • Code browser
  • Decompiler (plus temp-name hints)
  • Compiler
  • Source Code Debugger

Dan wrote JSqueak to teach himself NetBeans and Java in the fall of 2006. Although he developed it as a throw-away project, he notes that

it has features that recommend it for further useful service:

  • It is simple
    • Uses Java objects and storage management
    • Uses Java Integers for SmallIntegers
  • It is general
    • A weak(*) object table enables enumeration and mutation
  • It is efficient
    • Includes a method cache and an at-cache (**)
    • Also a cache of common SmallIntegers
  • (*) – This does not mean wimpy — it’s a good sturdy object table — it just doesn’t hold onto garbage.
    (**) – This is not an automated teller machine, but a device that speeds up array and stream access.

These properties make it a reasonable base for teaching about VM design.

Dan adds that a number of things should be finished or improved if this VM is to see further use – it currently runs between 10 and 30 times slower than the C-based VM! If you wish to track or contribute to such projects, he invites you to add yourself to the (brand new!) JSqueak Interest mailing list.

You can find out more, and run the application as a WebStart Java Application at the JSqueak home page.

5 Responses to “JSqueak – Smalltalk interpreter written in Java”


  1. […] (Open Source, MIT-Lizenz) ist ein kleiner, in Java geschriebener Smalltalk-Interpreter, der ziemlich schnell sein soll (wenn auch noch um einiges langsamer als eine in C geschriebene virtuelle Maschine). […]


  2. […] list that he and his colleagues have created a SVN repository for their extended version of JSqueak – named Potato (like Dan Ingall’s original VM) – which includes a lot of […]

  3. Michael Davies Says:

    See also this post about Potato – a version of JSqueak that’s getting a lot of work from the Hasso-Plattner Institut.

  4. iwannt Says:

    Прикольно! А как насчет виртуальной машины для мобильных телефонов? Очень хочется видеть Squeak на моем SIE E71 🙂

    Cool! And what about the virtual machine for mobile phones? It wants to see Squeak on my SIE E71:)


  5. […] now in 2.2.1 version. But thing that determined me to write this post is what I found last time – JSqueak, and now here is my question: it is necessary to implement everything in Java ? To understand […]


Leave a comment