Join the author of Parrot, Perl 6’s new virtual machine, for a hands-on, guided tour of an engine that will eventually let you use C#, Java, Ruby, Perl, and other languages in a single application.
Parrot is the name of a new virtual machine (VM). Parrot is object-oriented, introspective, and language-agnostic. Like other modern virtual machines, Parrot is driven by bytecode and supports continuations. However, unlike almost all of today’s popular, stack-based, RISC-like virtual machines (such as Java’s and .NET’s), Parrot is register-based and a CISC-analog.
While Parrot was originally conceived of as the virtual machine for Perl 6, it now encompasses the whole family of dynamic programming languages. For all intents and purposes, Perl is a proper superset of a wide variety of languages. Name a language feature, any language feature — objects, dynamic compilation, runtime binding, exceptions, threads, lexical scoping — Perl has it (and Perl 6 adds more). It makes sense then that an engine that runs Perl 6 would work just as well for any language with similar characteristics, including Ruby and Python.
Oddly enough, while Ruby and Python are established languages, the design of Perl 6 is still in flux. So why build Parrot now? While the syntax of Perl 6 has yet to be finalized, the semantics of Perl 6 are more or less well known (for a preview of Perl 6, see the accompanying article on page 24). That is, while we don’t know exactly what Perl 6 looks like, we do know how it should act, at least well enough to build a good engine.
What started out as a prank (see the sidebar “The Perl Posse’s Parrot Prank”) is now a promising…
Please log in to view this content.
Not Yet a Member?
Register with LinuxMagazine.com and get free access to the entire archive, including: