Perl 6

Die Zukunft des Programmierens

Pugs

Pugs, offiziell "Perl 6 User's Golfing System", war eigentlich ein Projekt von Audrey Tang um Haskell zu lernen, und ist inzwischen ein recht weit fortgeschrittenere Perl 6-Interpreter.

Status

Pugs ist zur Zeit die kompletteste Perl 6-Implementierung, jedoch ruht die Entwicklung.

Kontrollkonstrukte (if, unless, Schleifen etc.) funktionieren, genauso wie Funktionsdefinitionen, die meisten Mutli-Methoden, sowie die meisten Objektorientierten Funktionen wie Vererbung.

Über den in pugs gelinkten perl5-Interpreter werden perl5-regexes korrekt implementiert, und Perl 5-Module können in Perl 6-Programmen verwendet werden.

Viele, aber längst nicht alle Operatoren und Metaoperatoren sind in Pugs implementiert.

Da Pugs seit etwa 2007 kaum bis gar nicht mehr weiterentwickelt wird, sich währenddessen jedoch die Sprache weiterentwickelt, ist es inzwischen zum herumspielen mit Perl 6 kaum noch zu empfehlen.

Backends

Wenn Pugs Quellcode interpretiert, wird er erst in einen AST (Abstract Syntax Tree) übersetzt.

Die Ausführung dieses ASTs wird von verschiedenen Backends übernommen.

Am besten funktioniert zur Zeit das eingebaute Haskell-Backend, das wie ein klassischer Interpreter funktioniert.

Weitere Backends übersetzen den Perl 6-Code nach Parrot-Code, perl5 oder Javascript. Diese alternativen Backends sind dem "Bit Rot" zum Opfer gefallen, werden aber in Zukunft sicher wieder reaktiviert werden.

Tests und Beispiele

Im SVN-Repository von Pugs liegen über zwanzigtausend Tests für Pugs und Perl 6, die beim Release von Perl 6 zur offiziellen Testsuite von Perl 6 werden sollen.

Auch viele Perl 6-Programme sind im SVN-Repository, die schon jetzt mit pugs ausgeführt werden können.

Links