Just to counter-balance the .NET coverage,
here's an overview of Parrot,
a highly reconfigurable multi-language virtual machine
(Perl, Scheme, Python, BASIC, Jako, Cola).
The VM provides a "single point of abstraction" for
async I/O, threads, events, and objects.
Uses "arena" Allocation of core structures
(see David Hansen's Advanced C book
Main,
Arena.c)
and three separate threading models.
A register-based virtual machine, unlike the stack-based JVM and .NET CIL.
(See this
recently published VM book.)
Dynamic opcodes allow the VM to run code
from other virtual machines such as "JVM, .NET, Z machine, Python, Perl 5, Ruby."
The VM has a regex engine that "can act as a
parser as well as just a regex engine."
Parrot has a tracing, compacting
garbage collector, not the reference counting that
scripting languages typically employ.
There is a
tutorial
at the main site
and an O'Reilly book available.
A recent
questions answered session
by a principal developer and an interesting
thread.
A Scheme port is included in the distribution
but the presentation does not mention any of the features
to support functional programming that the
ILX extension to the .NET runtime
adds like closures, thunks, and parametric
polymorphism.
In short, it's hard to get up to date information on the Parrot
Virtual Machine and the link to the distribution at CPAN from the
main site
is broken so it's even a little hard to get your hands on it.
Posted to cross-language-runtimes by jon fernquest on 7/28/02; 3:01:32 AM
|
|