TL;DR

実用ではなく、奇妙なアイデアを試すため、プログラムを書きにくくするため、あるいは冗談として作られたプログラミング言語。エソラング(esolang)とも呼ぶ。

なぜ必要か

Esolang wiki によると、難解プログラミング言語は主に小さなオンラインコミュニティの趣味であり、そこではプログラムを書いたり、言語の計算能力を議論したりしている。

仕組み

Esolang wiki では、作られる目的を次のように分けている。

  • ミニマリズム: 命令をできるだけ少なくする。この方向でチューリング完全になった言語は Turing tarpit と呼ばれる。brainfuck、OISC、Lazy K などがある。
  • 新しい概念: 言語設計の別の可能性を探る。Befunge、Thue、Unlambda などがある。
  • 冗談: l33t や Ook! のようにまだ使えるものもあれば、HQ9+ のように使えないものもある。
  • 奇妙さ: 普通の言語とできるだけ違うように作られた INTERCAL や、ほぼ使えないように設計された Malbolge がある。

例

意図的に作られた最初の難解プログラミング言語は、1972 年に Donald R. Woods と James M. Lyon が設計した INTERCAL である。最も人気があるのは、どちらも 1993 年に生まれた brainfuck と Befunge で、後の多くの言語が影響を受けている。「esoteric」という呼び方は、Chris Pressey の Web サイト「Esoteric Topics in Computer Programming」で広まった。

ストレンジコードは、こうした言語をさまざまな角度から解説した本である。

関連

出典