|
Perl 6
Perl 6 implementations: Revision 13
Unlike previous versions of Perl, where the translator actually defined the language, for Perl 6 the language is defined by its specification (the synopses). Thus, there are several implementations of Perl 6, and none of them are designated as "The Official Perl". As Synopsis 1 indicates, Perl 6 is anything that passes the official test suite. Currently maintained ImplementationsHere's a brief synopsis of the current implementations. View their individual pages for more details. PugsAs of this writing (2007-12-28), Pugs is the most complete of the available implementations, but its development seems to have stalled somewhat. Pugs is written in Haskell and currently hosts the official Perl 6 test suite. RakudoRakudo is designed to run on Parrot, which is a virtual machine designed to support dynamic languages. Rakudo is still fairly primitive at the moment, but it is rapidly gaining new features. As of December 2007, Rakudo has been substantially rewritten so that major components of the compiler are written in Perl 6 (using both itself as a bootstrap and the "Not Quite Perl" language below). Rakudo was formerly known as "perl6", but the name has been changed to better reflect the fact that there's no "official" Perl 6 implementation, and to reduce confusion. KindaPerl6 (kp6)is a project which grew out of pugs and is aimed to run a subset of perl 6 on the traditional perl interpreter. It's designed and headed by Flavio S. Glock. Not Quite Perl (NQP)"Not Quite Perl" (NQP) is not really a Perl 6 implementation, even though it uses Perl 6 syntax. NQP is a tool to help write compilers and libraries for Parrot, and is not really intended as a complete end-user programming language. It uses only limited forms of Perl 6 syntax, and provides only native Parrot runtime support (i.e., no specialized Perl 6 libraries or functions). Simplistic Meta Object Programming (SMOP)Also called "Simple Matter Of Programming", SMOP is an alternative runtime engine for Perl 6 in C with a pragmatic approach. It's much like the perl5 interpreter and feature a extremely polymorphic design which allows integration of about whatever object system and even pluggin of other interpreters. It's supposed to become a target for the KindaPerl6 compiler, until it bootstraps and finally supports the STD grammar. v6.pmv6.pm is a Perl 5 module that implements a subset of Perl 6. Historical ImplementationsTopazTopaz was Chip Salzenberg's attempt to reimplement Perl 5 in C++ in the late 1990s. Topaz was abandoned after the Coffee Mug Incident. |