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
Name | Language | Written in | Builds against | Passing tests | Completeness | Development |
parrot | * | * | * | * | * | |
befunge | Befunge-93 | PIR | 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 |
pheme | Scheme | Perl6Grammar | Parrot 2.8.0 | 49/51 | Development? | Reactivating? |
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 |
POD | Plain Old Documentation | Perl6Grammar | Parrot 1.1.0 | ? | Development | 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 |
Inactive, Retired, or Dormant Languages
Name | Language | Written in | Builds against | Passing tests | Completeness | Development |
abc | bc | Perl6Grammar | Parrot 3.3.0 | 161/161 (100%) | Semistable | Inactive |
APL | APL | Perl6Grammar | Parrot 1.4.0 | 216/216 (100%) | ? | Inactive |
BASIC | BASIC, Microsoft QuickBASIC 4.5 | Perl, PIR | ? | ? | Stable? | Retired |
bf | Brainf**k | PIR | Parrot 2.8.0 | 3/3 | Stable? | Inactive |
c99 | C programming language, C99 dialect | Perl6Grammar | Parrot 0.8.1-devel | ? | Stable | Inactive |
chitchat | Smalltalk | Perl6Grammar | Parrot 3.3.0 | 2/2 (100%) | ? | Inactive |
dotnet | .NET to PIR translator | C, Perl, PIR | Parrot 0.9.1 | 73/254 failed | ? | Dormant |
eclectus | Scheme | Scheme | Parrot 0.8.2-devel | ? (1) | Development | Inactive |
ecmascript | ECMAScript | Perl6Grammar | Parrot 1.1.0 | 43/43 (100%) | Development | Inactive |
forth | Forth | PIR | Parrot 3.3.0 | 24/24 (100%) | ? | Inactive |
gil | Generic Imperative Language | Perl6Grammar | Parrot 3.3.0 | 11/11 (100%) | ? | Inactive |
jako | Jako | Perl5 | Parrot 2.3.0 | ? | Development | Inactive |
matrixy | Octave | Perl6Grammar | Parrot 2.0.0 | 354/354 | Development | Active |
NQP | Not Quite Perl 6 | Perl6Grammar | Parrot 3.3.0 | 198/198 (100%) | Stable | Deprecated |
Pirate | Python | ? | ? | ? | ? | Retired |
PJS | ECMAScript | PIR | Parrot 0.8.1-devel | ? (1) | Development | Dormant |
json | JSON | Perl6Grammar | Parrot 0.8.1-devel | ? (1) | ? | Dormant |
Kea-CL | Common Lisp | ? | ? | ? | Development | Inactive |
lazy-k | Lazy K | PIR | Parrot 2.6.0 | 0/2 (100%) | Development (2) | Dormant |
lisp | LISP | PIR, PGE? | Parrot 0.8.1-devel | 134/134 (100%) | ? | Inactive |
lolcode | LOLCODE | Perl6Grammar | Parrot 3.3.0 | 70/82 | ? | Dormant |
Monkey | Lua 5.1 | ? | ? | ? | ? | Retired |
ook | Ook! | PASM | Parrot 1.2.0 | 1/1 (100%) | Stable? | Inactive |
punie | Perl 1.0 | Perl6Grammar | Parrot 2.3.0 | ?/52 | Development | Inactive |
regex | Regular expression engine | PMC | Parrot 0.9.1 | 53/53 (100%) | Development? | Retired |
scheme | Scheme | Perl 5 | Parrot 0.8.1-devel | ? (1) | Development | Inactive |
Scheme to PIR with Chicken | Scheme | ? | ? | ? | ? | ? |
m4 | GNU m4 | PIR | Parrot 1.4.0 | 125/125 (100%) | Development | Dormant |
Lua2PIR | Lua 5.1 | ? | ? | ? | ? | Retired |
unlambda | Unlambda | PIR | Parrot 3.3.0 | 4/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