hi.dtHi!などとすると前の記事のコードが実行できたりする。これであなたも今日からDTer。そんな馬鹿いないとは思うけど、これ一緒にいじりたい、って人がいたら「べ、別にあなたのために手伝ってあげるんじゃないんだから、ただの興味よ、興味」とかメールで送ってください。別になにもしないけど。...まぁ、githubにあるものなので好きにいじってください。あ、あとVMのこととか教えてくれる人がいたらすごく喜びます。Language~」を読んで、ついカッとなって言語処理系を作ってみた。Whitespaceのトークンを置き換えただけだけど。一応、上記の本に習って、ソースコードをWhitespaceの命令セットを持つ中間言語にコンパイルしてVMで実行する形にしてみた。あとはパースする部分を適当に置き換えたコンパイラを作ればそれっぽいのが簡単に作れる。いくつかネタ言語を作ってみたんだけど、その中でも一番しょーもないのがDT。DTでは次のようなソースを実行することができます。「はいはい、わ、わかったってば。そんなにムキになんないでよ。「だから、わかったってば。「いやその、なんか、ほんとごめんね。「...」バレンタインだと言うのに一体何をしてるんですかね、僕は。ちなみに「ど」「童貞ちゃうわっ!」「...」以外の文字は全て無視するので、それらの順番と数さえあってればどんなコメントを挟んでも問題ない。コメント記法とかも特にない。ちなみに上記のコードから有効な部分を抜き出すとこんな感じ。一応読みやすくするために改行は入れてある。ど童貞ちゃうわっ!どど童貞ちゃうわっ!どどど...童貞ちゃうわっ!...どどどどど童貞ちゃうわっ!童貞ちゃうわっ!ど童貞ちゃうわっ!どど童貞ちゃうわっ!...童貞ちゃうわっ!...どどどどど童貞ちゃうわっ!どどどど童貞ちゃうわっ!...童貞ちゃうわっ!...どどどどど童貞ちゃうわっ!ど童貞ちゃうわっ!ど...童貞ちゃうわっ!...どど.........あと他に「アイドルが機嫌良さげに踊るののワ型言語HRK」とか、「9つの世界を巡る変身ヒーロー型言語Decade」とか作ったけど、どれも今のところただのWhitespaceなのでどんなソースになるかは想像つきますね。どれも入出力や四則演算やジャンプ命令を備えてますので、フィボナッチ数列を無限に出力するとか余裕だし、その気になればきっとWebアプリぐらい書けますね。いうかどれも書くことを全く考慮してないので、俺もうざくなって似非中間言語書いてそれを置換してソースコードにするっていう本末転倒なことしないと書けない。Whitespaceにも飽きたので、次は何しよう。Ruby分は十分補充できたので、Objective-CでVM書くとか、Parrotの上で処理系作るとかしようかな、とか。関数型言語もまだやってないので、それを実装するのもいいし、処理系をHaskelで書いてみるとかもしたい。しょーもない見た目の「まともな」言語仕様を考えるとかもしたいなー。やってみると結構面白い。十分脳味噌ほぐれたらちゃんとした言語処理系のソースでも読んでみよう。そんな現実逃避をして過した休日。うーん、充実した土日だった。え?何?何でDTなんか作ったのって?もしかしてfaultierって童...いいいいいやいやいや。Language~の方はちゃんと面白い本なので誤解のなきよう。変な言語も色々紹介されてるし、Rubyでサクっと言語処理系つくるやりかたも書いてあるので、オススメです。販売元:毎日コミュニケーションズ発売日:2008-12-20おすすめ度:クチコミを見る追記これ書いた後にクチコミを見たら弾さんがてってってーとかやってて、その記事のさらに元記事が結構なブクマ数だったりして、今頃それに気付いてなんか負けた気分。いいもん、ちゃんとののワさん言語完成させるから。iPhoneで動くようにしちゃうから。配布できないけど(インタプリタは規約でAppStoreに登録できなかったはず)。