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