APL und
Virtuelle Maschine hat einen neue Bedeutung bekommen. Aber zuerst habe ich
Bernd für diesen interessanten Tipp zu danken. Interessant und beachtenswert, oder gar mehr?
Wenn ich Virtuelle Maschine bis vor einigen Jahren gehört habe, dachte ich gerne an das gute alte IBM VM zurück. Ein Betriebssystem, auf dem man mehrere und verschiedene Mainframe-Betriebssysteme parallel fahren konnte. VM gaukelt den Gastsystemen ihre Hardware nur vor. VM ist inzwischen leider Geschichte, wie viele guten Dinge aus dem Hause IBM.
Daher ist VMware keine Erfindung der 90er. VMware macht unter Windows oder Linux das, was VM auf IBM Mainframes tat. Also keine neue Idee, nur eine andere Plattform, aber das alleine war schon eine gute Idee.
APL läuft natürlich unter beidem, VM und VMware, denn es gibt APL-Implementierungen für MVS, CMS, Windows und Linux (und viele mehr).
Dann gibt es da ja noch die berühmte Java Virtuelle Maschine, eine Erfindung der 90er. Die gaukelt niemanden was vor, zumindest keine Hardware. Die verschiedenen systemabhängigen JVM-Implementierungen gleichen aus Sicht des Java-Entwicklers plattformspezifische Unterschiede aus. Als Java-Programmierer produziere ich damit nur noch plattformunabhängigen Bytecode.
Dies ist auch die Idee hinter "
Parrot":
"Parrot is a virtual machine designed to efficiently compile and execute bytecode for interpreted languages"
Und APL ist eben ganau solch eine interpretierte Sprache. APL ist sogar einer der ältesten Interpreter, nur etwas jünger als Basic. APL wird Ende November 40.
Doch zurück zu Parrot.
Während die Java VM nur Java Bytecode kompiliert und ausführt, ist Parrot breiter angelegt.
"Parrot can be used to support other dynamic, bytecode-compiled languages such as Python, Ruby and Tcl."
... und APL.
In der
Liste der Sprachen, für die es eine Parrot-Bytecode produzierende Implementierung gibt, taucht ganz weit vorne APL auf. Die Liste ist alphabetisch sortiert - aufsteigend. APL für Parrot scheint scheint noch im frühen Stadium zu stecken:
"Provides support for a variety of monadic/dyadic operators, character vectors, floats, int, and 1-D vectors"
Das reicht nicht für ernsthafte Aufgaben, aber immerhin. Ich habe auch den Eindruck, dass die Autoren der APL-Implementierung nicht allzu sehr in die APL-Gemeinschaft eingebunden sind. Sie können sicher Unterstützung gebrauchen - wie auch immer.
Vielleicht schreibe ich die Autoren an.
Macht das Sinn? Bringt das was? Keine Ahnung. Oft sind es diese Fragen, die wahren Fortschritt verhindern.
Auf jeden Fall: Danke, Bernd, für den interessanten Tipp.
P.S.: Ich weiß, es ist gewagt die o.a. verschiedenen Virtuellen Maschinen in einem Blog-Eintrag zu erwähnen. So etwas ist besser bei
Wikipedia aufgehoben.
P.P.S.: Apropos Wikipedia, auch dort findet man Parrot,
in Deutsch und
in Englisch.