Andreas Rozek Lesehinweise letzte Änderungen Gästebuch-Eintrag Mitteilungen an den Autor  English Version  zur Leitseite zum vorherigen Thema zum nächsten Thema  zur ersten Seite zur vorherigen Seite zur nächsten Seite

Rhino - ein JavaScript-Interpreter in Java

Von Netscape kommt mit "Rhino" [1] eine JavaScript-Implementierung in Java, die nicht nur den vollen Funktionsumfang von ECMAScript Version 3 [2] sowie eine sehr leistungsfähige Schnittstelle zu Java bietet, sondern außerdem in der Lage ist, JavaScript-Funktionen in "Java Byte Code" zu übersetzen - wodurch die Ausführungsgeschwindigkeit von Rhino (nicht zuletzt auch dank der "Just-In-Time"-Compiler für Java) teilweise sogar über der der in C geschriebenen JavaScript-Implementierung aus dem gleichen Hause liegt [3].

Die vorliegenden Seiten geben einen kurzen Überblick über Rhino und dokumentieren die Arbeiten des Autors im Rahmen einer Evaluierung im Hinblick auf eine Verwendung für seine Dissertation.

Bitte beachten Sie auch die Betrachtungshinweise sowie die Liste der letzten Änderungen!

Themenübersicht

Die folgende Themenübersicht führt Sie unmittelbar zu der von Ihnen gewünschten Information - klicken Sie dazu einfach auf das Thema Ihrer Wahl:

Rhino im Überblick

Rhino ist eine JavaScript-Implementierung in Java aus dem Hause Netscape. Quelltext und Binärcode werden unter der "Netscape Public License" (NPL) 1.1 [4] bzw. der "GNU Lesser General Public License" (GPL) [5] kostenfrei zur Verfügung gestellt.

Zu den charakteristischen Eigenschaften von Rhino gehören:

  • Rhino ist als "embeddable system" konzipiert, kann (und muß) also in ein umgebendes Java-Programm (die "Laufzeitumgebung") integriert werden, um Skript-Dateien sinnvoll ausführen zu können;

  • als erste einfache Laufzeitumgebung für Skript-Dateien gehört eine interaktive "Shell" zur Rhino-Distribution - ein entsprechendes Beispiel im Quelltext erleichtert die Entwicklung eigener Umgebungen;

  • Rhino bietet den vollen Funktionsumfang von ECMAScript Version 3 (JavaScript 1.5);

  • eine spezielle (Netscape-eigene) Technik namens "LiveConnect" erlaubt den unmittelbaren Zugriff auf Java-Klassen & -Objekte (insbesondere JavaBeans) - ohne daß diese dazu eigens angepaßt werden müßten;

  • die Implementierung von JavaScript-konformen Java-Klassen ("Host Objects") wird durch eine spezielle Namenskonvention erleichtert - Rhino übernimmt in diesem Fall die Konvertierung zwischen JavaScript- und Java-Datentypen;

  • ein "JavaAdapter" gestattet die Implementierung von Java-Schnittstellen mithilfe von JavaScript-Objekten sowie die Erweiterung von Java-Klassen um JavaScript-Variablen und -Funktionen;

  • in sicherheitsempfindlichen Bereichen können "SecurityDomains" zur Überwachung der von einem Rhino-Skript aus aufgerufenen Funktionen implementiert werden;

  • Skripte können wahlweise interpretiert oder in "Java Byte Code" übersetzt und ausgeführt werden;

  • der "JavaScript Compiler" kann vom Benutzer auch direkt aufgerufen werden, um Skript-Dateien in "Java Byte Code" zu übersetzen;

  • inzwischen enthält die Distribution auch einen interaktiven Debugger mit grafischer Benutzeroberfläche (auf der Basis von "Swing"-Komponenten).

Literaturhinweise

[1]

Norris Boyd
Rhino: JavaScript for Java
(siehe http://www.mozilla.org/rhino)
die angegebene Adresse verweist auf die Leitseite des Rhino-Projektes bei Netscape. Von hier aus kann die Rhino-Distribution heruntergeladen, die zur Distribution gehörende Dokumentation eingesehen und auf die sich mit Rhino befassenden Diskussionsforen zugegriffen werden;

[2]

ECMA - Standardizing Information and Communication Systems
Standard ECMA-262 ECMAScript Language Specification
(siehe ftp://ftp.ecma.ch/ecma-st/Ecma-262.pdf)
hinter der angegebenen Adresse verbirgt sich ein PDF-Dokument mit der Spezifikation von ECMAScript Version 3 - dieses entspricht JavaScript 1.5, der Version, die von Rhino implementiert wird;

[3]

Norris Boyd
JavaScript for the Java Platform
(siehe http://industry.java.sun.com/javaone/99/event/0.1768.629.00.html)
Rhino wurde 1999 auf der JavaOne-Konferenz in San Francisco vorgestellt. Die Folien enthalten u.a. einen Vergleich der Ausführungsgeschwindigkeiten zwischen Rhino und "Spider", der JavaScript-Implementierung in C aus dem Hause Netscape;

[4]

(Netscape)
Mozilla and Netscape Public Licenses
(siehe http://www.mozilla.org/MPL/)
die angegebene Seite enthält einen Überblick über die Lizenzmodelle von Netscape im Hinblick auf den "Mozilla"-Browser und seine Bestandteile - für Rhino ist die "Netscape Public License" (NPL) von Interesse;

[5]

(Free Software Foundation)
Free Software Licenses
(siehe http://www.fsf.org/licenses/licenses.html)
die angegebene Seite enthält einen Überblick über die Lizenzmodelle der "Free Software Foundation" - für Rhino ist die "GNU Lesser General Public License" (LGPL) von Bedeutung;

Haftungsausschluß

Bitte beachten Sie auch den Haftungsausschluß des Autors!

http://www.Andreas-Rozek.de/Rhino/index.html    (letzter Stand: 06.04.2002)