Parrot was born from the desire to target Perl6 to a VM separate from the language front-end and the realization that no contemporary mainstream VM really had the chops to support languages as highly dynamic as Perl to the level desired by the Perl6 team.

There are no fewer than two Python implementations using Parrot as a target, although one (Pynie) has scant details as linked from the Parrot web site and the other (Pirate) seems to be sporadic and sleepy if not defunct.

There are also a long list of other languages that have been implemented to target Parrot. Those projects are in various stages of completeness. Some are undoubtedly just proof of concepts or curiosities (ook, bf, Punie, befunge, lolcode) rather than projects aiming at producing production language tools. However, with no fewer than seven Lisp (Lisp, Arc, and Scheme) projects, two for ECMAScript, two for PHP, two for Lua, and a handful of other tools I'd say there's a good chance something useful is going to be on top of Parrot besides Rakudo (the Perl6 on Parrot project).

Perl6 is also a specification-based language design. While Perl5 may never run on another VM (although, as ikegami says talk has been heard of "PONIE" -- Perl5 on Parrot), Perl6 is meant to be a list of specs, a test suite, and as many front-end and back-end implementations as can be developed to pass that test suite. Since Perl5 (actually, Perl 1 through Perl 5) grew sort of piecemeal around the implementation, it makes things very difficult to have separate implementations which work the same. Perl6 was designed with multiple different source-compatible implementations with the same semantics in mind. That means you may very well see Perl6 running on the .NET CLR, the JVM, LLVM, Neko VM, compiled directly to x86 object files, or something else entirely. One implementation is the aforementioned Rakudo. The complete list of implementations includes Pugs (written in Haskell), SMOP (written in C), KindaPerl6, and v6.pm (Perl6 subset on Perl5 via modules). Eventually hopefully all of these projects will provide Perl6 implementation frontends and backends that meet the specs along with other backends.

If you're looking for Perl on a VM other than the one currently used by Perl5, then you're probably going to be pleased with that aspect of Perl6. Getting Perl5 onto another VM and retaining cross-compatibility is from what I understand a Herculean task, though, and one that won't be worth the effort if you'd just turn around and use Perl6 anyway. Attacking the backend target compatibility issue at the same time as changing the language syntax is a good idea. Let the frontend and backend specs be built together, rather than specifying what a Perl5 backend must do then changing the frontend for Perl6.


In reply to Re: jython! and any jperl exist?? by mr_mischief
in thread jython! and any jperl exist?? by targetsmart

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.