Languages targeting parrot ^

Any language that targets parrot should be listed here. In addition, any languages bundled with parrot that work with the unified test suite will have their test results listed under the smokes marked 'languages' at http://smoke.parrotcode.org/smoke/.

Amber for parrot ^

Author

Roger Browne

Description

Scripting language inspired by Eiffel and ruby.

Status

Incomplete - but all examples and test cases are working. Estimated progress towards release 1.0: language constructs 47%, libraries 6%, documentation 4%, robustness 6%. See also http://xamber.org/history.html

Last verified with parrot version

0.4.2

Location

http://xamber.org/.

The Amber PMCs are in languages/amber.

APL ^

Author

Will Coleda, Patrick Michaud

Description

APL

Status

Provides support for a variety of monadic/dyadic operators, character vectors, floats, int, and 1-D vectors. Part of languages smoke testing.

Last verified with parrot version

0.4.7

Location

"APL" in languages

BASIC/compiler ^

Author

Clint Pierce, Will Coleda (work with parrot 0.3.0+)

Description

BASIC Compiler

Status

Most of the samples work.

Last verified with parrot version

0.3.0

Location

languages/BASIC/compiler

BASIC/interpreter ^

Author

Clint Pierce

Description

BASIC Interpreter written in pure Parrot

Status

Broken - probably due to recent deprecations.

Last verified with parrot version

0.0.11

Location

languages/BASIC/interpreter

bc ^

Author

Patrick Michaud

Description

Basic calculator. See http://en.wikipedia.org/wiki/Bc_%28Unix%29 Implemented with the Parrot compiler tools PGE and TGE.

Status

Almost complete. A former implementation in languages/bc has been removed in revision 16528.

Last verified with parrot version

0.4.7

Location

languages/abc

befunge ^

Author

Jerome Quelin

Description

Functioning -93 interpreter (input routines may be funky).

Status

Broken with recent deprecation of push[simp]/pop[simp]. Samples working, README explain how to build/use. (waiting for Parrot objects for a befunge-98 version).

Last verified with parrot version

0.0.11

Location

languages/befunge

bf ^

Author

Leon Brocard

Description

bf. See http://en.wikipedia.org/wiki/Brainfuck.

Status

Passes all tests. Part of languages smoke testing.

Last verified with parrot version

0.4.5

Location

languages/bf

c99 ^

Author

Kevin Tew

Description

PGE grammar for C99

Status

Parser is pretty complete. Needs optok help.

Last verified with parrot version

0.4.6

Location

languages/c99

Cardinal ^

Author

Kevin Tew

Description

Implementation of Ruby CVS Head 1.9

Status

Parser is pretty complete. Generates PIR for basic Ruby programs

Last verified with parrot version

0.4.7: Failed 7/18 test scripts. 27/69 subtests failed.

Location

languages/cardinal

Cardinal OLD DEAD ^

Author

Mark Spashett

Description

Implementation of Ruby.

Status

Not active.

Last verified with parrot version

unknown

Location

http://rubyforge.org/projects/cardinal/

Cola ^

Author

Melvin Smith

Description

Java like language with some hybrid Perl features like regex operators planned.

See also http://en.wikipedia.org/wiki/Cola_programming_language.

Status

Functioning, all samples working, lacks IO routines

Last verified with parrot version

0.0.11

Location

languages/cola

Common Lisp ^

Author

Cory Spencer

Description

Aspires to implement a significant subset of the Common Lisp language.

Status

broken due to recent deprecations

Last verified with parrot version

0.1.2

Location

languages/lisp

conversion ^

Author

Unknown

Description

An early attempt to support grammars in Bachus-Naur-Format.

Status

Unmaintained. Removed from trunk of Parrot subversion repository.

Last verified with parrot version

Unknown

Location

Up to revision 12805 of the Parrot subversion repository: "conversion" in languages.

.Net To PIR Translator ^

Author

Jonathan Worthington

Description

Translates .Net bytecode to PIR.

Status

Much is left to do, but it's complete enough to tranlate 75% of the .Net class library.

Last verified with parrot version

0.4.4

Location

languages/dotnet

forth ^

Author

Dan Sugalski

Description

forth

Status

Unmaintained. Removed from trunk of Parrot subversion repository.

Last verified with parrot version

0.0.13

Location

Up to revision 12805 of the Parrot subversion repository: languages/forth

HQ9plus ^

Author

Bernhard Schmalhofer

Description

A joke language. See http://en.wikipedia.org/wiki/HQ9+

Status

Works and is mostly complete.

Last verified with parrot version

0.4.7

Location

languages/HQ9plus

Jako ^

Author

Gregor Purdy

Description

C/Perl like language, first compiler for Parrot. The intent is to have a block-structured language that is higher level than IMC, but still exposes the underlying virtual machine rather directly, in the hope that this will eventually be useful for coding extensions to the VM in a language more natural than IMC.

See also http://en.wikipedia.org/wiki/Jako_(programming).

Status

The compiler Works, and the language and examples include subroutines and global constants and variables. NCI also works. The Jako examples are tested during smoke testing. The 'queens' example currently has problems and is therefore not tested.

Has a low-tech hand-coded lexer and parser, and the ability to spit out the parse tree as XML for debugging. Syntax is a bit rigid, but includes forms that will be familiar to Perl programmers.

Part of languages smoke testing.

Last verified with parrot version

0.4.7

Location

languages/jako

lazy-k ^

Author

Leopold Tötsch

Description

lazy-k is a pure functional programming language according to the SKI calculus. See also http://homepages.cwi.nl/~tromp/cl/lazy-k.html

Status

Working, but not complete. Part of languages smoke testing.

Last verified with parrot version

0.4.5

Location

languages/lazy-k

Lua ^

Author

Francois Perrad

Description

Lua 5.1 compiler, implemented in Perl5 with yapp.

Lua 5.1 Standard Libraries implemented in PIR (still incomplete).

Status

Part of languages smoke testing.

See details in languages/lua/doc/status.pod.

Last verified with parrot version

0.4.7

Location

languages/lua

Monkey, an implementation of Lua on Parrot ^

Author

Klaas-Jan Stol

Description

Making Lua work on Parrot. Implemented in C. The lexer is built with Flex. The Parser is built with Bison. TreeCC is used to generate the code for creating the Abstract Syntax Tree.

There is also a Lua bytecode to PIR compiler at http://members.home.nl/joeijoei/lua2pir/

Status

Simple examples are working. The current version is 0.2.2.

Last verified with parrot version

0.2.x

Location

http://members.home.nl/joeijoei/parrot/

The Lua PMCs are in languages/lua.

Parrot m4 ^

Author

Bernhard Schmalhofer

Description

Port of GNU m4 to PIR.

Status

Functioning for handcrafted test cases. Loading frozen state is currently broken. Far from complete. Revision 0.0.14

Part of languages smoke testing.

Development is stalled. Takers are welcome.

Last verified with parrot version

0.4.7

Location

languages/m4

miniperl ^

Author

Jeff Goff

Description

miniperl

Status

Unmaintained. Removed from trunk of Parrot subversion repository.

Last verified with parrot version

Unknown

Location

Up to revision 12805 of the Parrot subversion repository: languages/miniperl

Ook ^

Author

Jerome Quelin

Description

Functioning compiler targeting pasm.

Status

Samples working, README explain how to build/use. Part of languages smoke testing.

Last verified with parrot version

0.4.5

Location

languages/ook

OpenComal ^

Author

Unknown

Description

Compiler emiting parrot being added to interpreter

Status

Under development; nowhere near anything yet

Last verified with parrot version

0.0.11

Location

http://www.josvisser.nl/opencomal

Parakeet ^

Author

Michel Pelletier

Description

Parakeet is a Forth that is extremely machine specific to the Parrot VM. Parakeet also has a lot of features not found in standard Forth, like local variables, nested words and classes and (as a result) nested compile-time and run-time lexical word, class and variable scopes.

Status

Under development; Broken in respect to recent (and upcoming) DEPRECATED items

Last verified with parrot version

0.0.11

Location

languages/parakeet

parrot_compiler ^

Author

Bernhard Schmalhofer played with it.

Description

An example on how the builtin PASM, PIR and PAST compilers can be used from within PASM and PIR programs.

Status

Working. Part of languages smoke testing.

Last verified with parrot version

0.4.5

Location

languages/parrot_compiler

Perl 6 parser/compiler ^

Author

Patrick Michaud (pmichaud@pobox.com) is the author and maintainer.

Description

This is a Perl 6 parser/compiler, an early version (no version numbers yet). It's still very early, only simple expressions and functions are available. If you're in a hurry to write "real Perl 6" programs, you might try looking at Pugs -- http://www.pugscode.org. Or, you can send patches and contributions to the one being built here!

Status

Part of languages smoke testing.

Last verified with Parrot version

0.4.7 : Failed 5/27 test scripts. 5/189 subtests failed.

Location

languages/perl6

Pheme ^

Author

chromatic

Description

It's not Scheme, it's Pheme! Pheme is a cleaned-up, partially implemented Lisp-2 compiler inspired by Scheme and built with TGE and PGE.

Status

Pheme handles function calls, a few built-in-PIR primitives, and atoms and lists. It also runs its tests written in pure Pheme. It is nearly to the point of being able to define the rest of the standard library in terms of its builtins.

Last verified with Parrot version

0.4.3 : Failed 4/14 test scripts. 12/51 subtests failed.

Location

languages/pheme

Pint ^

Author

Alan Knowles

Description

An experimental implementation of PHP

Status

This project has been abandoned. Any takers?

Last verified with parrot version

Unknown

Location

http://www.akbkhome.com/svn.php/PintCompiler http://www.akbkhome.com/blog.php/View/44/Latest_in_Vapourware_PintCompiler__dbdo.html

Plumhead ^

Author

Bernhard Schmalhofer

Description

A toy implementation of PHP. Playing with phc and XSLT. The grand idea is to have side by side comparison of phc, PGE and ANTLR3 parsing.

Status

Started.

Last verified with parrot version

0.4.7

Location

languages/plumhead

Wiki

http://rakudo.org/parrot/index.cgi?plumhead

Pugs ^

Author

Audrey Tang, et al.

Description

Perl6 compiler written in Perl6 and Haskell with multiple backends

Status

Basic IO and control flow elements; mutable variables; assignment.

Last verified with parrot version

0.4.4

Location

http://pugscode.org/

Punie ^

Author

Allison Randal

Description

Perl1 implemented in PIR with the help of TGE, Tree Grammar Engine, and PGE, Parrot Grammar Engine.

Status

So far, Punie handles constants (strings, integers, floats), variables, print statements, conditionals, do blocks, comma lists, and some basic math and logic ops.

Last verified with parrot version

0.4.7

Location

languages/punie

Python ^

Author

Michal J Wallace

Description

python

Status

Mostly working except for classes/exec/import. For licensing reasons, not in parrot's svn tree.

Last verified with parrot version

0.0.11

Location

http://pirate.tangentcode.com/

regex ^

Author

Steve Fink

Description

regex

Status

Working but fairly minimal. Part of languages smoke testing. Almost all tests are succeeding.

Last verified with parrot version

0.4.5

Location

languages/regex

Ruby ^

Author

Jeff Goff

Description

Ruby

Status

Unmaintained. Removed from trunk of Parrot subversion repository.

Last verified with parrot version

Unknown

Location

Up to revision 12805 of the Parrot subversion repository: languages/ruby

Span ^

Author

Matt Kennedy

Description

Span can be most concisely described as Smalltalk for C++, C#, and Java programmers. It features an object system modeled on the Smalltalk object system and a language syntax designed to be easy to learn for developers of C-like languages.

Status

Working.

Last verified with parrot version

0.0.11

Location

http://homepage.mac.com/matt.kennedy/Span

Scheme ^

Author

Jeffrey Goff, Juergen Boemmels

Description

Scheme

Status

Functioning, as far as implemented. Lists and functions are working but many functions are missing implementation. 70% pass ratio due to recent deprecations. Part of languages smoke testing.

Last verified with parrot version

0.4.7

Location

languages/scheme

Tcl ("partcl") ^

Author

Will Coleda, Matt Diephouse, et al.

Description

A from scratch implementation of a Tcl 8.5 compiler in parrot.

Status

Passes over 24.9% of tcl's (lightly converted) test suite, using a Test::More like harness. (Doesn't run quite enough of tcl yet to simply use tcltest.tcl)

Last verified with parrot version

0.4.7 (There's a bug in 0.4.8's makefile: if you want to play with a recent tcl, you'll want svn-latest.)

Location

languages/tcl

TAP (Test Anything Protocol) ^

Author

Chris Dolan and Jerry Gay

Description

A parser for the Test Anything Protocol

Status

See Parrot RT for details. Search for [TAP]

Last verified with parrot version

0.4.6

Location

languages/tap

unlambda ^

Author

Leopold Tötsch

Description

unlambda is a pure functional programming language with mostly eager evaluation following the SKI calculus (+ a few extensions)

See also http://www.madore.org/~david/programs/unlambda/

Status

Working. Part of languages smoke testing.

Last verified with parrot version

0.4.5

Location

languages/unlambda

URM ^

Author

Marcus Thiesen

Description

URM

Status

Functioning, all examples working. Language standard is stable and not expected to change soon.

Last verified with parrot version

0.4.7

Location

languages/urm

WMLScript Translator ^

Author

Francois Perrad

Description

Translates WMLScript bytecode to PIR.

The language WMLScript is a subset of ECMAScript (ie JavaScript). WMLScript defines also an bytecode interpreter (stack based), a binary format.

Status

Part of languages smoke testing.

See details in languages/WMLScript/doc/status.pod.

Last verified with parrot version

0.4.7

Location

languages/WMLScript

YAL ^

Author

Leopold Tötsch

Description

Yet Another Language

Status

It's mainly intended to test an AST interface and for checking that code generation plays nicely together with Parrot opcodes.

Last verified with parrot version

0.0.13

Location

http://toetsch.at/yal/

Zcode ^

Author

Amir Karger, Leopold Tötsch

Description

Infocom's Z-machine. See also http://en.wikipedia.org/wiki/Z-machine.

Status

25 out of 66 Z3 opcodes all or mostly done. A long way from Zork. 3 out of 4 test files working.

Last verified with parrot version

0.4.5

Location

languges/Zcode


parrot