Originally getting its name from 2001 April Fools joke, Parrot is a virtual machine. It executes binary bytecode. First public alpha versions were released in September 2001. The code can be got from CPAN, and the home page can be found at http://www.parrotcode.org/.

Parrot was specifically designed for Perl's next version in development (Perl 6). At the moment (2002-04-12), it's progressing nicely; scalars work, lists and hashes will be there soon. Parrot is more intended for dynamic languages like Perl; the competition (JVM and .NET) are better for statically typed languages.

Since it is a virtual machine executing virtual assembler code, there are several different languages that compile to Parrot bytecode - it isn't limited to Perl! Here are some of the languages that have been so far done to varying degrees:

  • Jako, a C-like language developed for testing Parrot
  • Cola, likewise, but more Java-like
  • BASIC
  • Forth
  • ...and an extremely rudimentary Perl 6 compiler...