LOLCODE入門
当然ながらlolcatと同様にLOLCODEにも、実用的な価値や教育的な価値はまったくない。しかしだからといって「楽しくない」わけでは決してない。それに、プログラミング言語開発の黎明期に参加できるチャンスはそうそう転がっているわけではないのだ。
構文
LOLCODE言語は現在のところはまだ開発/策定段階だが、LOLCODEの習得を始めることはすでに可能であり、開発/策定の手助けを行なうことさえできるようになっている。あなたがlolcatのファンであれば、文法は簡単に覚えることができるだろう。そうではなくあなたがlolcatのファンでないというのなら、おそらくこの記事をここまで読んでいるということもないだろう。
さて言語の入門ということであれば、お約束の「Hello World!」の例を抜きにすることはできない。LOLCODEには「Hello World!」の代わりに「HAI WORLD!」という例がある。
LOLCODEアプリケーションはすべてHAI
文から始まる。「HAI WORLD!」では、その次にLOLCODEのプリント文であるVISIBLE
があり、最後はKTHXBYE
文で閉じる。
HAI VISIBLE "HAI WORLD!" KTHXBYE
上の例からも分かる通り、LOLCODEでは当然のこととして、すべて大文字が使用される。
ループ
LOLCODEで変数を宣言するためには、以下のようにI HAS A文を使用する。
I HAS A CHEEZBURGER
ここではCHEEZBURGER
を変数として宣言している。それでは次に、CHEEZBURGERの値を1ずつ増加してその値を表示する短いスクリプトを見てみよう。
HAI I HAS A CHEEZBURGER ITZ 1 IM IN YR LOOP VISIBLE "I has dis many: " N CHEEZBURGER IZ CHEEZBURGER BIGGER THAN 11 O RLY? YA RLY GTFO NO WAI UP CHEEZBURGER!!1 KTHX KTHX KTHXBYE
上記のI HAS A
文では、変数CHEEZBURGER
を宣言し、その値を1に設定している。次のIM IN YR LOOP
文は、ループを開始する。
次にVISIBLE
関数を使用して、現在の値を表示する。なおCHEEZBURGER
の値を表示するためには、単にCHEEZBURGER
とするのではなくN CHEEZBURGER
とする必要がある。その後、値の比較を行ない、CHEEZBURGER
の値がループを終了するための定数を越えていないかどうかを判定する。UP CHEEZBURGER!!1
は、CHEEZBURGER
の値に1を足す。
値の比較により、値が一致した場合には(YA RLY
)、LOLCODEはGTFO
文を実行してループを終了する。一方、値が一致しない場合には(NO WAI
)、CHEEZBURGER
変数を再び1増加する。なおループがKTHXBYE
ではなくKTHX
で閉じられていることに注意しよう。KTHXBYE
はプログラム全体のブロックを閉じるときにのみ使用することが推奨されている。そしてこのプログラムでも、最後のKTHXBYE
文でプログラムのブロックを閉じている。
LOLCODEの実行
以上で基本的な文法を把握したので、実際にLOLCODEプログラムを実行してみよう。LOLCODEにはPerl、Python、.Net、Javaなどで書かれた様々な実装がある。私はParrotチームがそのうちParrot Virtual MachineでLOLCODEもサポートしてくれることを期待しているのだが、それが実現するまではLOLPythonインタプリタで試すことにした。
しかし残念ながら、LOLPythonはLOLCODEの最新版を扱うことができなかった。一方、Perlで書かれたBSDライセンスのLOLCode Interpreterでは、LOLCODEの最新版もちゃんと動かすことができた。LOLCode Interpreterを使うには、PerlモジュールParse::RecDescentがインストールされたシステムならば、lol.plファイルを取得するだけで良い。なおUbuntuでlibparse-recdescent-perlをインストールするには、「sudo apt-get install libparse-recdescent-perl
」と実行するだけだ。
プログラムを実行するためには、プログラムを .lolファイルとして保存する。例えば私の場合、上記のHAI WORLDプログラムをhai.lolとして保存した。プログラムを実行するには、lol.plを実行可能にして(chmod 755 lol.pl
)、以下のようにしてスクリプトを実行すればよい。
lol.pl hai.lol
LOLCode Interpreterのウェブページでは、LOLCode InterpreterがサポートしているLOLCODE文法のリストを見ることができる。
I Can Has Cheezburger?サイトの写真をすでに全部見てしまったのなら、しばらくはLOLCODEをハックして暇を潰すのも良いだろう。KTHXBYE!
NewsForge.com 原文