# $Id: LANGUAGES.STATUS.pod 16658 2007-01-16 15:18:25Z coke $

=head1 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/.


=head2 Amber for parrot

=over 4

=item Author

Roger Browne

=item Description

Scripting language inspired by Eiffel and ruby.

=item 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

=item Last verified with parrot version

0.4.2

=item Location

http://xamber.org/.

The Amber PMCs are in C<languages/amber>.

=back


=head2 APL

=over 4

=item Author

Will Coleda, Patrick Michaud

=item Description

APL

=item Status

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

=item Last verified with parrot version

0.4.7

=item Location

L<languages/APL>

=back


=head2 BASIC/compiler

=over 4

=item Author

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

=item Description

BASIC Compiler

=item Status

Most of the samples work.

=item Last verified with parrot version

0.3.0

=item Location

C<languages/BASIC/compiler>

=back


=head2 BASIC/interpreter

=over 4

=item Author

Clint Pierce

=item Description

BASIC Interpreter written in pure Parrot

=item Status

Broken - probably due to recent deprecations.

=item Last verified with parrot version

0.0.11

=item Location

C<languages/BASIC/interpreter>

=back


=head2 bc

=over 4

=item Author

Patrick Michaud

=item Description

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

=item Status

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

=item Last verified with parrot version

0.4.7

=item Location

C<languages/abc>

=back


=head2 befunge

=over 4

=item Author

Jerome Quelin

=item Description

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

=item 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).

=item Last verified with parrot version

0.0.11

=item Location

C<languages/befunge>

=back


=head2 bf

=over 4

=item Author

Leon Brocard

=item Description

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

=item Status

Passes all tests. Part of languages smoke testing.

=item Last verified with parrot version

0.4.5

=item Location

C<languages/bf>

=back

=head2 c99

=over 4

=item Author

Kevin Tew

=item Description

PGE grammar for C99

=item Status

Parser is pretty complete.
Needs optok help.

=item Last verified with parrot version

0.4.6

=item Location

C<languages/c99>

=back

=head2 Cardinal

=over 4

=item Author

Kevin Tew

=item Description

Implementation of Ruby CVS Head 1.9

=item Status

Parser is pretty complete.
Generates PIR for basic Ruby programs

=item Last verified with parrot version

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

=item Location

C<languages/cardinal>

=back

=head2 Cardinal OLD DEAD

=over 4

=item Author

Mark Spashett

=item Description

Implementation of Ruby.

=item Status

Not active.

=item Last verified with parrot version

unknown

=item Location

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

=back


=head2 Cola

=over 4

=item Author

Melvin Smith

=item Description

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

See also L<http://en.wikipedia.org/wiki/Cola_programming_language>.

=item Status

Functioning, all samples working, lacks IO routines

=item Last verified with parrot version

0.0.11

=item Location

C<languages/cola>

=back


=head2 Common Lisp

=over 4

=item Author

Cory Spencer

=item Description

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

=item Status

broken due to recent deprecations

=item Last verified with parrot version

0.1.2

=item Location

C<languages/lisp>

=back


=head2 conversion

=over 4

=item Author

Unknown

=item Description

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

=item Status

Unmaintained. Removed from trunk of Parrot subversion repository.

=item Last verified with parrot version

Unknown

=item Location

Up to revision 12805 of the Parrot subversion repository:
L<languages/conversion>.

=back


=head2 .Net To PIR Translator

=over 4

=item Author

Jonathan Worthington

=item Description

Translates .Net bytecode to PIR.

=item Status

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

=item Last verified with parrot version

0.4.4

=item Location

C<languages/dotnet>

=back


=head2 forth

=over 4

=item Author

Dan Sugalski

=item Description

forth

=item Status

Unmaintained. Removed from trunk of Parrot subversion repository.

=item Last verified with parrot version

0.0.13

=item Location

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

=back


=head2 HQ9plus

=over 4

=item Author

Bernhard Schmalhofer

=item Description

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

=item Status

Works and is mostly complete.

=item Last verified with parrot version

0.4.7

=item Location

C<languages/HQ9plus>

=back


=head2 Jako

=over 4

=item Author

Gregor Purdy

=item 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 L<http://en.wikipedia.org/wiki/Jako_(programming)>.

=item 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.

=item Last verified with parrot version

0.4.7

=item Location

C<languages/jako>

=back


=head2 lazy-k

=over 4

=item Author

Leopold TE<ouml>tsch

=item 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

=item Status

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

=item Last verified with parrot version

0.4.5

=item Location

C<languages/lazy-k>

=back


=head2 Lua

=over 4

=item Author

Francois Perrad

=item Description

Lua 5.1 compiler, implemented in Perl5 with yapp.

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

=item Status

Part of languages smoke testing.

See details in F<languages/lua/doc/status.pod>.

=item Last verified with parrot version

0.4.7

=item Location

C<languages/lua>

=back


=head2 Monkey, an implementation of Lua on Parrot

=over 4

=item Author

Klaas-Jan Stol

=item 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/

=item Status

Simple examples are working. The current version is 0.2.2.

=item Last verified with parrot version

0.2.x

=item Location

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

The Lua PMCs are in C<languages/lua>.

=back


=head2 Parrot m4

=over 4

=item Author

Bernhard Schmalhofer

=item Description

Port of GNU m4 to PIR.

=item 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.

=item Last verified with parrot version

0.4.7

=item Location

C<languages/m4>

=back


=head2 miniperl

=over 4

=item Author

Jeff Goff

=item Description

miniperl

=item Status

Unmaintained. Removed from trunk of Parrot subversion repository.

=item Last verified with parrot version

Unknown

=item Location

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

=back


=head2 Ook

=over 4

=item Author

Jerome Quelin

=item Description

Functioning compiler targeting pasm.

=item Status

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

=item Last verified with parrot version

0.4.5

=item Location

C<languages/ook>

=back


=head2 OpenComal

=over 4

=item Author

Unknown

=item Description

Compiler emiting parrot being added to interpreter

=item Status

Under development; nowhere near anything yet

=item Last verified with parrot version

0.0.11

=item Location

http://www.josvisser.nl/opencomal

=back


=head2 Parakeet

=over 4

=item Author

Michel Pelletier

=item 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.

=item Status

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

=item Last verified with parrot version

0.0.11

=item Location

C<languages/parakeet>

=back


=head2 parrot_compiler

=over 4

=item Author

Bernhard Schmalhofer played with it.

=item Description

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

=item Status

Working. Part of languages smoke testing.

=item Last verified with parrot version

0.4.5

=item Location

C<languages/parrot_compiler>

=back


=head2 Perl 6 parser/compiler

=over 4

=item Author

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

=item 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!

=item Status

Part of languages smoke testing.

=item Last verified with Parrot version

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

=item Location

C<languages/perl6>

=back


=head2 Pheme

=over 4

=item Author

chromatic

=item 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.

=item 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.

=item Last verified with Parrot version

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

=item Location

C<languages/pheme>

=back


=head2 Pint

=over 4

=item Author

Alan Knowles

=item Description

An experimental implementation of PHP

=item Status

This project has been abandoned. Any takers?

=item Last verified with parrot version

Unknown

=item Location

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

=back


=head2 Plumhead

=over 4

=item Author

Bernhard Schmalhofer

=item 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.

=item Status

Started.

=item Last verified with parrot version

0.4.7

=item Location

languages/plumhead

=item Wiki

L<http://rakudo.org/parrot/index.cgi?plumhead>

=back



=head2 Pugs

=over 4

=item Author

Audrey Tang, et al.

=item Description

Perl6 compiler written in Perl6 and Haskell with multiple backends

=item Status

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

=item Last verified with parrot version

0.4.4

=item Location

http://pugscode.org/

=back


=head2 Punie

=over 4

=item Author

Allison Randal

=item Description

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

=item Status

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

=item Last verified with parrot version

0.4.7

=item Location

C<languages/punie>

=back


=head2 Python

=over 4

=item Author

Michal J Wallace

=item Description

python

=item Status

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

=item Last verified with parrot version

0.0.11

=item Location

http://pirate.tangentcode.com/

=back


=head2 regex

=over 4

=item Author

Steve Fink

=item Description

regex

=item Status

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

=item Last verified with parrot version

0.4.5

=item Location

C<languages/regex>

=back


=head2 Ruby

=over 4

=item Author

Jeff Goff

=item Description

Ruby

=item Status

Unmaintained. Removed from trunk of Parrot subversion repository.

=item Last verified with parrot version

Unknown

=item Location

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

=back


=head2 Span

=over 4

=item Author

Matt Kennedy

=item 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.

=item Status

Working.

=item Last verified with parrot version

0.0.11

=item Location

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

=back


=head2 Scheme

=over 4

=item Author

Jeffrey Goff, Juergen Boemmels

=item Description

Scheme

=item 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.

=item Last verified with parrot version

0.4.7

=item Location

C<languages/scheme>

=back


=head2 Tcl ("partcl")

=over 4

=item Author

Will Coleda, Matt Diephouse, et al.

=item Description

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

=item 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)

=item Last verified with parrot version

0.4.7

=item Location

C<languages/tcl>

=back


=head2 TAP (Test Anything Protocol)

=over 4

=item Author

Chris Dolan and Jerry Gay

=item Description

A parser for the Test Anything Protocol

=item Status

See Parrot RT for details. Search for [TAP]

=item Last verified with parrot version

0.4.6

=item Location

C<languages/tap>

=back


=head2 unlambda

=over 4

=item Author

Leopold TE<ouml>tsch

=item 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/

=item Status

Working. Part of languages smoke testing.

=item Last verified with parrot version

0.4.5

=item Location

C<languages/unlambda>

=back


=head2 URM

=over 4

=item Author

Marcus Thiesen

=item Description

URM

=item Status

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

=item Last verified with parrot version

0.4.7

=item Location

C<languages/urm>

=back


=head2 WMLScript Translator

=over 4

=item Author

Francois Perrad

=item 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.

=item Status

Part of languages smoke testing.

See details in F<languages/WMLScript/doc/status.pod>.

=item Last verified with parrot version

0.4.7

=item Location

C<languages/WMLScript>

=back


=head2 YAL

=over 4

=item Author

Leopold TE<ouml>tsch

=item Description

Yet Another Language

=item Status

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

=item Last verified with parrot version

0.0.13

=item Location

http://toetsch.at/yal/

=back


=head2 Zcode

=over 4

=item Author

Amir Karger, Leopold TE<ouml>tsch

=item Description

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

=item Status

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

=item Last verified with parrot version

0.4.5

=item Location

C<languges/Zcode>

=back

