I HAZ A PARROT

Happy new year, everybody!

I read Larry Wall's recent essay on scripting vs. programming (which was interesting from a language-design viewpoint, certainly), but when he described the parser abilities of Perl 6, I thought, “Wow, that'd sure be nice for LOLCODE!”

Well. It sure is gratifying not even to have to speak those wishes aloud before seeing them granted.

Simon Cozens writes about the Parrot Compiler Toolkit. Will Coleda provided a starting point for LOLCODE, and Simon is in the process of adding a bunch of functionality.

This afternoon Will Coleda checked in a simple stub implementation of LOLCODE. The implementation consists of three files. The first is the grammar. This is written in Real Life Perl 6 Rules. That was pretty impressive. Then there's the actions file, which builds the Abstract Syntax Tree. This is written in a language called “Not Quite Perl”, which is as close to Perl 6 as makes no odds. Finally there's the implementation of the builtins, which is written in Parrot's intermediate language. This is where you implement any custom runtime operations that Parrot doesn't already know about.
I spent two hours this afternoon basically starting from zero knowledge of the Parrot Compiler Toolkit and added a bunch of features to Will's stub, including variable assignment and access. That is astonishing. (link)

I agree.

You can, quite literally, check it out for yourself.

Gosh, I love you guys.