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 master image 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

NameLanguageWritten inBuilds againstPassing testsCompletenessDevelopment
 parrot * * * * *
befunge Befunge-93PIRParrot 3.3.01/1 (100%)SemistableActive
 Blizkost Perl 5 on ParrotPIRParrot 3.3.0102PrototypeActive
 cardinal Ruby 1.9Perl6GrammarParrot 3.3.0 Smoke reportsDevelopment?Active
 Close C-like languagePerl6GrammarParrot 1.3.0?DevelopmentActive
 Fun JoyPerl6GrammarParrot 2.3.025/25 (100%)DevelopmentActive
 hq9plus HQ9 PlusPerl6GrammarParrot 3.3.013/13 (100%)StableMaintainance
 jvm Java VM bytecode translatorC, Perl, PIRParrot 0.8.2-devel-DevelopmentActive
 Kea FactorPIR/NQPParrot 2.0.01/1PrototypeActive
 lua Lua 5.1Perl6GrammarParrot 3.3.0 Smoke reportsDevelopment?Active
 markdown MarkdownPerl6GrammarParrot 3.3.056/56 (100%)DevelopmentActive
 nqpTAP TAP harness for NQPNQPtrunk DevelopmentActive
 NQP-rxNot Quite Perl 6, with  regular expressionsPerl6GrammarParrot 2.4.0 Smoke reportsDevelopmentActive
 partcl TclPIR, C(PMC) VersionFailing several tests against latest parrotDevelopmentinactive
 partcl-nqp TclNQP-rx/PIRParrot 2.3.0Failing several tests against latest parrotDevelopmentinactive
 pheme SchemePerl6GrammarParrot 2.8.049/51Development?Reactivating?
 Perk JavaPerl6GrammarParrot 0.9.0-devel?PrototypeActive
 Pipp PHPPerl6GrammarParrot 1.4.0 Smoke reportsDevelopmentActive
 PIR Parrot Intermediate RepresentationPerl6GrammarParrot 0.8.1-devel? (1)SemistableMaintenance
 PIRATE Parrot Intermediate RepresentationNQP-rxParrot 2.4.0? (1)ActiveDevelopment
 PL/ParrotParrot embedded in  PostgreSQLC/Perl 5Parrot 1.7.0? (1)AlphaActive
 POD Plain Old DocumentationPerl6GrammarParrot 1.1.0?DevelopmentActive
 primitivearc ArcPIRParrot 1.4.0?/230DevelopmentActive
 Porcupine PascalPerl6GrammarParrot 1.4.0115/116DevelopmentActive
 pynie PythonPerl6GrammarParrot 2.3.0175/175 (100%)DevelopmentActive
 Rakudo Perl 6 Perl 6Perl6Grammar, PerlParrot 3.3.0236/236 (100%) (3)DevelopmentActive
 shakespeare-parrot ShakespearePerl6GrammarParrot 3.3.061/64DevelopmentActive
 Tapir TAP Harness for ParrotPIRParrot 2.0.0100/100PrototypeActive
 Winxed A JavaScript-alike languageC++Parrot 2.3.0114/114DevelopmentActive
 WMLScript WMLScriptPIRParrot 3.3.0?/417DevelopmentSemi-active
 XML XML and  SAX-like parserPerl6GrammarParrot 3.3.030/30DevelopmentActive
 Squaak Demo language for PCTNQP-rx/PIRHEAD?DevelopmentActive
 roast Perl 6 spec testsPerl 6HEAD?DevelopmentActive

Inactive, Retired, or Dormant Languages

NameLanguageWritten inBuilds againstPassing testsCompletenessDevelopment
abc bcPerl6GrammarParrot 3.3.0161/161 (100%)SemistableInactive
 APL APLPerl6GrammarParrot 1.4.0216/216 (100%)?Inactive
BASIC BASIC,  Microsoft QuickBASIC 4.5Perl, PIR??Stable?Retired
 bf Brainf**kPIRParrot 2.8.03/3Stable?Inactive
 c99 C programming language,  C99 dialectPerl6GrammarParrot 0.8.1-devel?StableInactive
 chitchat SmalltalkPerl6GrammarParrot 3.3.02/2 (100%)?Inactive
 dotnet .NET to  PIR translatorC, Perl, PIRParrot 0.9.173/254 failed?Dormant
 eclectus SchemeSchemeParrot 0.8.2-devel? (1)DevelopmentInactive
 ecmascript ECMAScriptPerl6GrammarParrot 1.1.043/43 (100%)DevelopmentInactive
 forth ForthPIRParrot 3.3.024/24 (100%)?Inactive
 gilGeneric Imperative LanguagePerl6GrammarParrot 3.3.011/11 (100%)?Inactive
 jako JakoPerl5Parrot 2.3.0?DevelopmentInactive
 matrixy OctavePerl6GrammarParrot 2.0.0354/354DevelopmentActive
 NQPNot Quite Perl 6Perl6GrammarParrot 3.3.0198/198 (100%)StableDeprecated
 Pirate Python????Retired
 PJS ECMAScriptPIRParrot 0.8.1-devel? (1)DevelopmentDormant
 json JSONPerl6GrammarParrot 0.8.1-devel? (1)?Dormant
 Kea-CL Common Lisp???DevelopmentInactive
 lazy-k Lazy KPIRParrot 2.6.00/2 (100%)Development (2)Dormant
 lisp LISPPIR, PGE?Parrot 0.8.1-devel134/134 (100%)?Inactive
 lolcode LOLCODEPerl6GrammarParrot 3.3.070/82?Dormant
 Monkey Lua 5.1????Retired
 ook Ook!PASMParrot 1.2.01/1 (100%)Stable?Inactive
 punie Perl 1.0Perl6GrammarParrot 2.3.0?/52DevelopmentInactive
regex Regular expression enginePMCParrot 0.9.153/53 (100%)Development?Retired
 scheme SchemePerl 5Parrot 0.8.1-devel? (1)DevelopmentInactive
 Scheme to PIR with Chicken Scheme?????
 m4 GNU m4PIRParrot 1.4.0125/125 (100%)DevelopmentDormant
 Lua2PIR Lua 5.1????Retired
 unlambda UnlambdaPIRParrot 3.3.04/4 (100%)?Dormant
  • (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

See also: AbandonedLanguages