Parrot Virtual Machine/Languages on Parrot
Languages on Parrot
[edit | edit source]There are a number of programming languages being implemented on Parrot, some of which are nearing functional completion, some which are still in active development, and some which have been started but are now abandoned. Interested developers may want to help join in the development effort with some of these languages, adopt an abandoned language project, or start a new language project entirely.
As of the 1.0.0 release, all language implementations except toy and example languages will be developed and maintained outside of the central Parrot repository. Where available, locations to external project pages will be provided.
Language Projects
[edit | edit source]Rakudo (Perl 6)
[edit | edit source]Rakudo is the name of the Perl6 implementation on Parrot. This is not the only implementation of Perl6, however.
Rakudo development is test-driven. There is a gigantic suite of tests for the Perl6 language that have been developed over the years. The progress of the Rakudo interpreter is measured by the number of specification tests, or "spectests" that pass. There is not a straight-forward way to measure the percentage progress of the project, because the total number of tests is changing regularly as well.
Rakudo is under active development by several volunteers. Some developers have even received funding to work on Rakudo more regularly.
APL
[edit | edit source]Basic
[edit | edit source]abc
[edit | edit source]A basic calculator language.
Befunge
[edit | edit source]C99
[edit | edit source]The implementation of the C programming language, following the C99 specification, has a number of purposes. C is a strongly-typed language, so it isn't necessarily the best candidate for implementation on the dynamically-typed Parrot. However, there are a number of benefits to the Parrot project to having a C parser available.
The C99 language parser is being used, at least in part, to help automate the process of generating NCI function signatures for new libraries and extensions. This is under active development by volunteers, some of which have been funded.
Cardinal (Ruby)
[edit | edit source]An implementation of Ruby
Chicken (Scheme)
[edit | edit source]ChitChat (SmallTalk)
[edit | edit source]Cola (Java)
[edit | edit source]Common Lisp
[edit | edit source]Eclectus (Scheme)
[edit | edit source]ECMAScript
[edit | edit source]Forth
[edit | edit source]Jako
[edit | edit source]A language derived from C and Perl
JSON
[edit | edit source]Kea Common Lisp
[edit | edit source]Lazy-K
[edit | edit source]Lolcode
[edit | edit source]Lua
[edit | edit source]Monkey (Lua)
[edit | edit source]M4
[edit | edit source]Ook
[edit | edit source]Pheme (Scheme)
[edit | edit source]PIR
[edit | edit source]PJS (ECMAScript)
[edit | edit source]Pipp (PHP)
[edit | edit source]Pipp is a recursive acronym for Pipp is Parrot's PHP. This language implementation was previously named "Plumhead", shorthand for the name "Plum-headed Parakeet". Pipp is being maintained on github at pipp. The project seems halted: the website is down/missing and the last commit was at 2009-07-22.
Punie (Perl 1)
[edit | edit source]Pynie (Python)
[edit | edit source]Python
[edit | edit source]Scheme
[edit | edit source]Partcl (TCL)
[edit | edit source]ParTCL is the TCL compiler for Parrot. The ParTCL project lives at http://code.google.com/p/partcl/
Unlambda
[edit | edit source]URM
[edit | edit source]Zcode
[edit | edit source]Translator Projects
[edit | edit source]Projects to translate to or from Parrot Bytecode.
Resources
[edit | edit source]