Parrot: Revision 16
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
^^^ Core Ideas
* *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.
* 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 it very easy to implement a HLL (high level language) for Parrot, the Parrot design team developed the [PCT] (Parrot Compiler Toolkit) including NQP, a subset of Perl 6 that is much fiendlier and faster to code in for normal people.
It 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.
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 "Official Parrot Wiki"<https://trac.parrot.org/parrot/wiki>
* The "Parrot Home Page"<http://www.parrot.org/>
* "Weekly Parrot related IRC meetings"<http://perl6.cz/wiki/Perl_6_and_Parrot_links#Parrot_Sketch_-_Weekly_Parrot_related_IRC_meetings>