Parakeet is a Forth-inspired, object-oriented stack machine language for
the Parrot VM.  

http://www.daca.net:8080/Parakeet-0.2.tgz

The tarball contains two files, the language implementation and a test
script.  The test script gives several examples and exercises most of
the features I have implemented so far.  

(Note that if you don't want the test script to segfault on
multi-inheritance, you must turn off DOD/GC with 'parrot -G' or comment
out the relevant section.  I'm working to solve this problem soon).

On syntax highlighting editors, I suggest a perl or shell script mode
when looking at the test script. Note that the indentation style of the
test script is due to me being primarily a Python programmer, not due to
any syntax requirement, Parakeet, like Forth, cares only about "words".

I am sorry to admit that I have not yet written any documentation, so if
you are not familar with Forth you might be a bit lost, and if you are
familiar with Forth you will not recognize many of the words.  I am
still settling the vocabulary and semantics of the language, so this
will be fixed soon.

Parakeet has the following features:

- Functions, classes, methods, inheritance and multi-inheritance.

- Local variables and class attributes (properties coming).

- Built-in Parrot debugging, tracing, and profiling.

- Function and class decompilation.

- Math words ( +, -, *, /, %).

- Logical words (and, or, not, xor).

- Comparison words (>, <, >=, <=, ==, !=, cmp).

- Control-flow words (if/else/then, do/loop/+loop, for/next)

- Input/Output words (print, println, read, readline)

Anyone with passing knowledge of Forth can use Parakeet.  The general
concepts of stack manipulation, syntax, control-flow, and new word
definitions are practically identical.  Since many of the specific
semantics of the languages are different, I have omited many standard
Forth words, taken those I like, and changed or moved the names of
others.

I plan on bringing Parakeet all the way to a 1 release, which I consider
to be a tested, stable, documented, Forth-inspired interpritation of all
the features of the Parrot machine.  If anyone is interested in helping
develop a new Parrot language, please feel free to contact me and I will
make arrangements to check it into CVS somewhere.

I was pleased to see the release the other week of Span and I hope we
start to see more fruits of Parrot's "cross language experiment".  Not
only will we get Perl, Python and other well known languages, but the
freedom to adapt and be creative, or (gasp!) rebelious.

-Michel

Reply via email to