Perl 6
Parrot: Revision 14

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 (hige level language) for Parrot, the Parrot design team developed the PCT (Parrot Compiler Toolkit).


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:

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.