本文へスキップ
totonoe.tech

No.11 ・ 文学・世界観系

Malbolge

= 設計者自身も書けなかった言語

読みにくさ
●●●●●
書きにくさ
●●●●●
誕生年
1998年
作者
Ben Olmstead
生まれた国
アメリカ
学べること
意図的に読み書きを困難にする設計も可能だということ

どんな言語か

人間には書けないように意図的に設計された言語です。難しくすることではなく、書けないようにすることそのものが目標でした。

仕掛けは複数あります。命令は実行されるたびに自分自身を書き換えます。数値の扱い方も一般的な言語とは異なり、同じ命令でも書かれている位置によって意味が変わります。

いずれも「先の動作を予測できないようにする」ために組み込まれた仕掛けです。

この言語で最初に完成したプログラムは、人が考案したものではありません。総当たりで探索するプログラムが偶然発見したものです。

コード例(全文)

Hello World!

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

※ Andrew Cooke 氏による短い版で、Rosetta Code の「Hello world/Text」(https://rosettacode.org/wiki/Hello_world/Text)の Malbolge 節に掲載されています。このサイトの実行部品で動かすと「Hello World!」と出力されます。

その場で実行する

このページの中だけで動きます。入力したコードはサーバーへ送られません。

上のコード例をそのまま実行します。

ボタンを押すと、ここに出力が出ます。
自分のコードを実行 ブラウザ内で実行・送信ゼロ

Malbolge は命令が書かれた位置で意味が変わり、実行のたびに自分自身を書き換えます。人が新しく書くのは事実上できないため、ここでは上のコード例を動かして確かめる使い方が中心です。入力は使えません。

ボタンを押すと、ここに出力が出ます。

試しに: 初期値のコードを1文字だけ書き換えて実行してみてください。ほとんどの場合、エラーになるか、まったく別の出力になります。

ひとこと

作者自身がプログラムを1つも書けないまま公開した言語です。最初の「Hello World!」が完成したのは2年後で、発見したのは人間ではなく、探索を続けるプログラムでした。名前は『神曲』に登場する地獄の名称に由来します。

もっとくわしく(外部サイト): https://esolangs.org/wiki/Malbolge

← エソラング図鑑トップへ

続けて整える

運営サイト

私たちが運営するサイト