No.06 ・ 視覚・構造系
Befunge
= 2次元の盤面を実行する言語
- 読みにくさ
- ●●●○○
- 書きにくさ
- ●●●○○
- 誕生年
- 1993年
- 作者
- Chris Pressey
- 生まれた国
- カナダ
- 学べること
- プログラムは上から下に読むとは限らないということ
どんな言語か
通常のプログラムは上から下へ1行ずつ読んでいきます。この言語は異なり、平面上を上下左右に移動しながら読み進めます。
> < ^ v の矢印にぶつかると、その向きに進行方向が変わります。# は1マス飛ばす、@ は停止です。盤面の端まで進むと、反対側の端から出てきます。
作者の目標は「コンパイルできない言語をつくる」ことでした。コンパイルとは、プログラムをあらかじめ機械語に翻訳しておくことです。この言語は実行中に自分自身のコードを書き換えられるため、事前に翻訳しておくことが困難なのです。
コード例(全文)
Hello, World!
"!dlroW ,olleH">:#,_@
文字を逆順に積んで、後ろから1文字ずつ出力します その場で実行する
このページの中だけで動きます。入力したコードはサーバーへ送られません。
上のコード例をそのまま実行します。
ボタンを押すと、ここに出力が出ます。
矢印 > < ^ v で向きが変わります。" ではさむと文字を積み上げ、, で1文字ずつ出力します。@ で終了です。
ボタンを押すと、ここに出力が出ます。
試しに: "iH">:#,_@ と書いてみてください。「Hi」と出力されます。
もっとじっくり書きたいときは Befunge の実行環境 へどうぞ。
ひとこと
コード上を読み取り位置が上下左右に移動しながら実行されます。矢印記号にぶつかると向きが変わるため、コードがそのまま経路のようになります。盤面の端は反対側の端とつながっています。
もっとくわしく(外部サイト): https://esolangs.org/wiki/Befunge