Languages

Benabik edited this page Jan 17, 2012 · 2 revisions

Parrot-Based Implementations of Programming Languages

There are many languages that have been built using the Parrot Compiler Tools (PCT) all of which are in various stages of development. This page tracks the status of these projects and provides information on where to find them.

Some of these languages live in the Parrot repository. Two demo languages - abc and Squaak - can be found in the examples/languages directory. Also, nqp-rx and winxed are included in the ext directory as they are frequently used during Parrot development. However, the other languages are developed outside the Parrot repository.

Note that several languages that used to live in the Parrot repository have been moved to https://github.com/parrot. To get a copy of the source code for one of these languages (e.g. lolcode), use the following git command:

git clone git://github.com/parrot/lolcode lolcode

However, we strongly encourage you to instead use Parrot's package manager: Plumage. See the Plumage wiki for how to use it.

Actively Maintained Languages

Name Language Written in Builds against Passing tests Completeness Development
befunge Befunge-93 PIR/td> Parrot 3.3.0 1/1 (100%) Semistable Active
Blizkost Perl 5 on Parrot PIR Parrot 3.3.0 102 Prototype Active
cardinal Ruby 1.9 Perl6Grammar Parrot 3.3.0 Smoke reports Development? Active
Close C-like language Perl6Grammar Parrot 1.3.0 ? Development Active
Fun Joy Perl6Grammar Parrot 2.3.0 25/25 (100%) Development Active
hq9plus HQ9 Plus Perl6Grammar Parrot 3.3.0 13/13 (100%) Stable Maintainance
jvm Java VM bytecode translator C, Perl, PIR Parrot 0.8.2-devel - Development Active
Kea Factor PIR/NQP Parrot 2.0.0 1/1 Prototype Active
lua Lua 5.1 Perl6Grammar Parrot 3.3.0 Smoke reports Development? Active
markdown Markdown Perl6Grammar Parrot 3.3.0 56/56 (100%) Development Active
nqpTAP TAP harness for NQP NQP trunk Development Active
NQP-rx Not Quite Perl 6, with regular expressions Perl6Grammar Parrot 2.4.0 Smoke reports Development Active
partcl Tcl PIR, C(PMC) Version Failing several tests against latest parrot Development inactive
partcl-nqp Tcl NQP-rx/PIR Parrot 2.3.0 Failing several tests against latest parrot Development inactive
Perk Java Perl6Grammar Parrot 0.9.0-devel ? Prototype Active
Pipp PHP Perl6Grammar Parrot 1.4.0 Smoke reports Development Active
PIR Parrot Intermediate Representation Perl6Grammar Parrot 0.8.1-devel ? (1) Semistable Maintenance
PIRATE Parrot Intermediate Representation NQP-rx Parrot 2.4.0 ? (1) Active Development
PL/Parrot Parrot embedded in PostgreSQL C/Perl 5 Parrot 1.7.0 ? (1) Alpha Active
primitivearc Arc PIR Parrot 1.4.0 ?/230 Development Active
Porcupine Pascal Perl6Grammar Parrot 1.4.0 115/116 Development Active
pynie Python Perl6Grammar Parrot 2.3.0 175/175 (100%) Development Active
Rakudo Perl 6 Perl 6 Perl6Grammar, Perl Parrot 3.3.0 236/236 (100%) (3) Development Active
shakespeare-parrot Shakespeare Perl6Grammar Parrot 3.3.0 61/64 Development Active
Tapir TAP Harness for Parrot PIR Parrot 2.0.0 100/100 Prototype Active
Winxed A JavaScript-alike language C++ Parrot 2.3.0 114/114 Development Active
WMLScript WMLScript PIR Parrot 3.3.0 ?/417 Development Semi-active
XML XML and SAX-like parser Perl6Grammar Parrot 3.3.0 30/30 Development Active
Squaak Demo language for PCT NQP-rx/PIR HEAD ? Development Active
roast Perl 6 spec tests Perl 6 HEAD ? Development Active
  • (1) I couldn't get one or more tests to run on my system.
  • (2) As per README/documentation.
  • (3) Basic tests only.

Status

So it's easy to tell what's going on with a project, I'll categorize statuses on the basis of two criteria:

  • Completeness: stable, semistable, development, prototype, unknown
    • Stable: Claims to be version 1.0, 2.0, etc.; tests appear to cover a usable subset of functionality.
    • Semistable: Stable to a deprecated or old standard; can be extended to the latest standard.
    • Development: Claims to be version 0.1, 0.2, etc.; large functionality missing.
    • Prototype: Claims to be development, prototype or no version number; only basic functionality is in.
  • Development: active, maintenance, dormant, inactive
    • Active: Major changes in the last month.
    • Maintenance: Minor changes in the last month; only really applicable to stable/semistable languages.
    • Dormant: No major changes in the last month; bugfixes and occasional commits are still being made.
    • Inactive: No changes in the last three months.
    • Retired: No plans to maintain or continue development, open for adoption