[SLUG] Food for thought

Jonathan Worthington jonathan at jwcs.net
Fri Aug 5 14:59:34 BST 2005


<john at johnallsopp.co.uk> wrote:
>> Amusingly enough, my most recent bit of open source hacking was
>> getting
>> Parrot support for Windows closer to being on par with its support for
>> UNIXy OSes.
>
> What's Parrot?
>
Parrot is a virtual machine (think the .NET VM or the Java JVM, if you are 
familiar with those).  The idea of a virtual machine is that instead of 
programs compiling to native code run on the CPU, they are compiled to 
bytecode for a particular virtual machine.  Then the virtual machine 
executes that bytecode on the CPU, perhaps by on-the-fly conversion to 
native code (JIT compilation) or just by looking at what each instruction is 
and carrying out that instruction (an interpreter).  Parrot can do both of 
these.

Parrot came out of the Perl community initially, and was to be the runtime 
engine for Perl 6.  However, its horizons have been massively broadened from 
the initial plan and now it's a virtual machine designed to be targettable 
by many languages.  As well as the Perl 6 compiler project, there is also 
work on compilers for other languages - Python and Tcl are both far from 
complete, but coming on very nicely.  But when it's finished it means that 
you will be able to, for example, write a class in Perl, inherit and extend 
it in Python and use that derived class in, say, PHP, provided we have a 
working PHP->Parrot compiler (I'm not sure of the status of this project).

Unlike .NET and the JVM, Parrot is suited to running dynamically typed 
languages, like Perl and Python.  Also, it's been completely openly 
specified and developed from the start (released under a disconjunction of 
the GPL and artistic license, just as the current Perl release is).

More details at:-
http://www.parrotcode.org/

Sorry if there's any jargon in here that leaves anyone scratching their 
head - I'll happily answer any questions about Parrot.  Well, those I know 
the answers to anyway.  ;-)

Jonathan 





More information about the Scarborough mailing list