Wie sein Vorgänger (TinyVM),
ist leJOS eine
kleine, von Jose Solorzano entwickelte, Virtuelle Maschine.
Sie funktioniert als Ersatz für die offizielle Lego-Firmware des
Lego
MindstormTM RCX. Der programmierbare
Baustein "RCX" enthält einen Hitachi H8300 Prozessor und
32 Kb RAM, von denen 28 Kb von der firmware genutzt werden können.
Die Ziele der TinyVM weichen von denen der leJOS ab.
leJOS erlaubt es, mit einem von der TinyVM verschiedenen Design der
API und einem anderen Usability-Modell zu experimentieren. Die TinyVM veranschaulicht,
wie klein eine angemessene Java Runtime sein kann, während leJOS mehr
aussagt über die Menge der Features, die man in eine RCX Java Runtime
stecken kann, bevor die Platz-Ressourcen erschöpft sind.
Folgende Eigenschaften haben leJOS und TinyVM gemeinsam:
- Objektorientierte Sprache (Java).
- Preemtive Threads (tasks).
- Arrays (auch multi-dimensionale).
- Rekursion.
- Synchronisation.
- Exceptions.
- eine gut dokumentierte API.
Die wichtigsten Features, die in leJOS implementiert sind, in der TinyVM
jedoch fehlen, sind:
- Eine Windows-Version
- Gleitkommazahlen (32 Bit)
- String-Konstanten.
- Casten von long nach int und umgekehrt.
- Markiert Referenzen im Stack (was das Implementieren einer garbage collection möglich macht).
- Downloaden mehrerer Programme.
- Mathematische Funktionen (java.lang.Math):sin, cos, tan, atan, pow, etc.
- Andere APIs.
Beide Virtuelle Maschinen stellen umfangreiche API’s zur Steuerung des
RCX. Diese umfassen z.B. die Kontrolle von Motoren, Sensoren, LCD und Buttons,
des weiteren einen Sensor-listener und die Kommunikation zwischen mehreren
RCX-Bausteinen oder einem RCX und einem PC.
In einem "Wired News"-Aritkel "Lego: A Hacker's Best Friend" von Michelle
Delio wird erwähnt, dass selbst Jonathan Knudson, Author des "Unofficial
Guide to Lego Mindstorms Robots" einige Programme für leJOS geschrieben
hat und es als "very cool stuff" bezeichnet.(http://www.wired.com/news/culture/0,1284,39504,00.html)
|