Perl 6

Die Zukunft des Programmierens

KindaPerl6 - Perl 6-Compiler in Perl 6

kp6 und mp6 sind zwei zusammenarbeitende Compiler, die Teile von Perl 6 in Perl 6 selbst implementieren.

mp6

mp6 ist ein Compiler, der in miniperl6 geschrieben ist, miniperl6 als Eingabe versteht und als Ausgabe perl5-Code liefert.

miniperl6 ist eine Untermenge von Perl 6.

Außerdem gibt es noch eine Übersetzung des mp6-Source Codes in Perl 5, d.h. man kann mit mp6 miniperl6-Code ausführen, wenn man Perl 5 zur Verfügung hat.

mp6 unterstützt experimentell auch andere "Emitter", d.h. es kann auch parrot-Code oder Perl 6-Code ausgeben, wobei diese Emitter noch experimentell sind.

kp6

kp6 oder "Kinda-Perl 6" (auf deutsch: "sowas wie Perl 6") ist in miniperl6 geschrieben, kann also von mp6 übersetzt werden.

kp6 versteht ebenfalls eine Untermenge von Perl 6, die allerdings größer ist als miniperl6 (und eine Übermenge von miniperl6 ist). Ziel ist es, die Standard-Grammatik zu benutzen, und damit alles erlaubte Perl 6 parsen zu können.

kp6 ist eine Art "Compiler-Framework", das aus Perl 6-Sourcecode einen Abstract Syntax Tree baut, und verschiedene Transformatoren und Emitter unterstützt, die größtenteils noch in Arbeit sind.

kp6 unterstützt außerdem sogenannte "Domain Specific Languages", kurz DSL. Das sind Elemente von Perl 6, die ihre eigene Syntax haben, wie z.B. Regexes und String-Interpolation.

Aufbau von
	kp6

kp6 und mp6 stammen größtenteils von Flávio Glock und lebt im Pugs-Repository.

Die Entwicklung von kp6 wartet zur Zeit auf SMOP als schnelleres Backend, da der Compiler durch das Bootstrapping zu langsam geworden ist. Die einzelnen Entwicklungsziele ("Milestones") findet man in der englischen kp6-roadmap.