Zum Inhalt springen

Parrot

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 16. Juli 2005 um 23:02 Uhr durch MGla (Diskussion | Beiträge) (Entwicklung: aktuelle version). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Parrot ist eine in Entwicklung befindliche registerbasierte virtuelle Maschine zum Ausführen von interpretierten Sprachen. Parrot wird als Basis für Version 6 von Perl entwickelt, es soll aber auch eine große Anzahl anderer Sprachen wie Python, Ruby, Tcl oder Basic unterstützen. Darüber hinaus ist auch eine Implementierung von Perl 5 in Parrot (Codename Ponie) in Arbeit.

In der finalen Version sollen alle diese Sprachen gemeinsam verwendbar sein, d.h. jede Sprache soll die Module jeder anderen Sprache verwenden können.

Parrot wird wahlweise unter der GNU General Public License oder der Artistic License veröffentlicht und ist somit frei verfügbar.

Entstehung

Ursprünglich war Parrot ein aufwendiger Scherz zum 1. April 2001. Ein eigener Artikel (samt Buchankündigung) wurde auf der Perl-Website des O'Reilly-Verlags veröffentlicht, mit der "offiziellen" Ankündigung von Larry Wall und Guido van Rossum, dass Perl und Python in Zukunft zu einer gemeinsamen Sprache namens Parrot verschmelzen würden.

Diese Verschmelzung fand nicht statt, aber die Idee zu einer gemeinsamen Virtual Machine war geboren.

Entwicklung

Parrot ist Open Source und wird von Freiwilligen entwickelt, unter der Leitung von Chip Salzenburg (Nachfolger von Dan Sugalski) und Leopold Tötsch.

Das Projekt befindet sich noch in einem relativ frühen Stadium. Die aktuelle Version ist 0.2.2 (veröffentlicht am 3. Juli 2005), in der wichtige Funktionen wie Objekte und Subroutinen bereits implementiert sind. Das bei O'Reilly erscheinende Buch "Perl 6 and Parrot Essentials, 2nd edition " bietet einen sehr gut geschriebenen Überblick über den (bei Drucklegung) aktuellen Stand und soll auch die Weiterentwicklung in jährlich neuen Auflagen begleiten.

Im Gegensatz zu anderen virtuellen Maschinen wie der JVM für Java, die stapelorientiert sind (0-Adress-Maschine), soll Parrot eine Registermaschine sein (3-Adress-Maschine). Dadurch erhofft man sich bessere Optimierungsmöglichkeiten und Parallelverarbeitung von Befehlen sowohl innerhalb eines Prozessors als auch verteilt auf mehreren Prozessoren. Dies ist bei 0-Adress-Maschinen nur äußerst schwer zu implementieren.