なんかあなごるスレとかがあることに気付いて、そこで Whirlという言語があるらしい ということを知ったのでした。
http://www.bigzaphod.org/whirl/
なんか esoteric language って星の数くらいあるしインストラクションが二つしかなくて 01 だけ、とか書いてあるけど、普通に Whitespace みたいに適当に何文字かで一命令とかになってるだけじゃないのかなぁ、とか思ってたんだけど、これがなかなか面白い。特にサイトの説明が。
最初のごく一部を訳。
Whirl は以下のような最新技術を念頭に置いてデザインされた言語である:
- 継承
- シンプルさ
- 簡易性
- XML
- メンテナンス性
- 多態
- 柔軟性
- 強力さ
- 引き算
- グリルドチキン
──残念ながら、どれも最終成果には取り入れられなかった。
まぁこういうナメたノリはいいですね。上記の一覧で極めて強い意味を持っているのは実は「引き算」で、 Whirl は足し算もかけ算も割り算もあるのに引き算は無いという。そしてそのせいで相当にコードが書きにくくなるっていう性質なので、ちょっとコードを書いてみるとなんで「引き算」が最新技術に混じって特筆されてたかがわかって面白かったです。
プログラムは二つのリングコマンド(聖剣2とかD&Dを思い出すんだけど、まさにそんな感じ)を操作する。リングコマンドはそれぞれ12個の命令があって、それをくるくる回してプログラムが進んでいくっていうしくみ。
たぶん論より証拠で実際に動きを見た方がいいです。以下になんかかっこいいフラッシュの処理系があるのでそれを使うといいです。
http://www.bigzaphod.org/whirl/Whirl-1.01.swf
コードは公式サイトに載ってる 1+1 を計算する(Whirlは数値リテラルが無いので2を作るためにも計算が必要)プログラムとかでいいんじゃないかと。
0001100000111100001000001001100000111100
たしかこのコードは微妙にムダがあるけど、なんにせよただ 2 を表示するだけのプログラムでも 30Byte 以上は必要なのでなかなかおそろしい言語だと思う。