Unless you’ve been buried in a bog for the last year, you’ll have come across lolcats, the pictures of cats speaking an amusingly stilted dialect of English.

From lolcats came lolgeeks and then, inevitably, lolcode:

HAI
I HAS A VAR ITZ 1
IM IN YR LOOP
VISIBLE VAR
IZ VAR BIGGER THAN 39 O RLY?
YA RLY
GTFO
NO WAI
UP VAR!!1
KTHX
KTHX
KTHXBYE

I talked to Joe Drago, author of a lolcode interpreter written in Perl.  The parser is based on Parse::RecDescent, a recursive descent parser written by Damian Conway.

Joe’s a Senior Software Developer at a video game company, where most of his work is in other languages, but he says he prefers Perl to the C++ that pays the bills.

Joe says, “I’d never used Parse::RecDescent before… I found it to be wonderful. I’ve been wanting to write a parser for a while now (I own the Dragon book and one on lex/yacc), but I needed a test case. This was a great opportunity to screw around with that. The module is very Perlish, in the sense that it lets you have fun with the grammar of a language without having to plan complex data structures too much to see some results. I highly recommend P::RD for Perl programmers interested in how grammars are written.”

Unfortunately Joe’s lolcode interpreter predates the official lolcode specifications and isn’t compliant with them. But, he says, “I released it under the BSD license under the notion that someone more interested in the final standard would be inspired by my simple stuff and make something really cool with it. Hint, hint!”