Parrot is the VM (a software virtual machine) that was originally designed for only Perl 6. It's design and evolution is driven by 3
- Optimized for dynamic languages like Perl, Python and Ruby. Dynamic languages know during runtime much more about a program. Let's take advantage of that.
- Interoperability: any part of any program can written in any implemented language. Your program can use the libraries of all languages.
- Modularity: all parts can be changed independently and there are on several levels API to plug in optimizer.
- its register based unlike other major VM (JavaVM, .Net) that are stack based. That can make switches between routines, threads and programs much faster.
- some registers like int (integer) and num (floating point) can be maped to hardware CPU register
- string and PMC (Parrot magic cookie or polymorphic container) allow to do more higlevel stuff with registers
- it has several native languages: PASM (Parrot Assembler) and PIR (Parrot Intermediate Representation) which will be of course compiled to Parrot bytcode. In some cases distribution of a program as one bytecode file will be much easier and also attractive for companies, which don't like to reveal there Perl source code.
To make an implementation of a HLL (high level language) for Parrot very easy, the Parrot design team developed the PCT (Parrot Compiler Toolkit) including NQP, a subset of Perl 6 in which not only people, who are more used to HLL, can code far more productive, than in PIR.
PCT is used by many implmentations, most important of them is naturally Rakudo, the Perl 6 compiler. But there are also others like Python, Ruby, PHP, over 30 in total. For more detailed info see Parrot Compiler.
Also the Perl 6 compiler Pugs, that is written in Haskell, can emit back end cod for several targets, including Parrot.
Blizkost is not a compiler but the original Perl 5.10 interpreter, incorporated into Parrot.
Because Parrot's user base extends well beyond the Perl community that created it, the Parrot Foundation was founded in late 2008. This simplifies some organization and funding issues for Perl Foundation folks, while likewise making life easier for Parrot Foundation folks. Here are the new homes for these Parrot-related pages:
The idea came from Simon Cozens, former editor of perl.com. In 2001 he installed there a carefully prepared April Fools' joke about Larry Wall and Guido van Rossum announcing to join Perl and Python and calling the new language Parrot. And as life follows art Parrot will join Perl and Python in a way both communities can life with.