Implementations: Revision 9
Perl 6 has several compilers and interpreters, and none is called "official Perl 6". Larry Wall has explained that anything that passes the test suite, is Perl 6. So far only partial implementations have been made, as listed below. With their feedback, the Synopses that form the language specification are evolving, and so is the test suite.
* [Rakudo] is currently the most feature rich and the most actively developed implementation. It runs on [Parrot], a virtual machine for many dynamic languages.
* [Pugs] was the leading implementation from 2005 until about 2007. It runs on Haskell, a language for functional programming.
* [STD.pm] is "the" canonical Perl 6 grammar, written in a subset of Perl 6. Unfortunately no implementation can fully parse STD.pm yet, let alone build a compiler or interpreter based on it. However, by means of the "viv" tool described next, Perl 6 source code can be parsed by a near equivalent running in Perl 5.
* [viv] is a derivation of STD.pm for testing and bootstrapping purposes. A utility called "gimme5" creates viv by translating STD.pm into Perl 5. This is possible because Larry very carefully wrote STD.pm in a translatable subset of Perl 6.
* [SMOP] is Simple Meta Object Protocol, a design for a C based interpreter to execute