Zum Hauptinhalt Zur Navigation

Doppio: Java auf Coffeescript

Die Entwickler CJ Carey, Jez Ng und Jonny Leahey arbeiten mit Doppio daran, Java ohne Plugins im Browser lauffähig zu machen. Dazu haben sie eine Java Virtual Machine und den Bytecode Disassembler Javap in Coffescript implementiert.
/ Jens Ihlenfeld
16 Kommentare News folgen (öffnet im neuen Fenster)
Java Virtual Machine in Javascript umgesetzt (Bild: Doppio)
Java Virtual Machine in Javascript umgesetzt Bild: Doppio

Doppio begann als Studienarbeit, wurde aber weiterentwickelt und ist heute vollständig genug, um GNU Diff, LZW-Kompression und einen Java-4-Compiler auszuführen. Derzeit interpretiert Doppio Bytecode Schritt für Schritt, die Entwickler arbeiten aber daran, den recht langsamen Interpreter durch einen Compiler zu ersetzen. Damit soll Doppio schneller werden und sich besser optimieren lassen.

Derzeit unterstützt Doppio alle 200 Opcodes, bietet eine exakte Emulation der elementaren Java-Typen einschließlich "64-Bit Long", unterstützt große Teile des Reflection-API, Datei- und Standard-I/O sowie JDK-Bibliotheken wie String, Pattern und Hashmap.

Doppio läuft in den aktuellen Browsern, sofern diese Localstorage und Typed Arrays unterstützen. Getestet wird die Software in Chrome, Firefox und Safari. Zudem kann eine Konsolenversion auch unter Node.js verwendet werden.

Geschrieben wurde Doppio in Coffeescript, das letztendlich in Javascript umgewandelt wird. JVM-Objekte werden dabei auf Javascript-Objekte mit gleichen Feldnamen abgebildet, die ihrerseits in Objekte mit zusätzlichen Metadaten eingebettet sind.

Details zu Doppio finden sich auf der Projekthomepage(öffnet im neuen Fenster) , der Quelltext ist auf Github zu finden(öffnet im neuen Fenster) und steht unter der MIT-Lizenz. Auch eine Demo(öffnet im neuen Fenster) stellen die Entwickler bereit.


Relevante Themen