[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