難解プログラミング言語を整える
初級Ook!を整える。
= Brainf*ck の8命令を「Ook.」「Ook?」「Ook!」に置き換えただけの言語を、相互変換して実行する
① Ook! を入力・実行
Ook. / Ook? / Ook! の2語1組の並びを入力します。空白・改行は無視されます。
RESULT
「実行する」を押すと、ここに出力が表示されます
解説
Ook! は「命令の見た目」を変えただけのBrainfuck。
Ook!は2003年、David Morgan-Mar(esolangs.org: Ook!)が発表した言語です。計算の仕組みはBrainfuckと完全に同一で、8つの命令それぞれに「Ook.」「Ook?」「Ook!」の2語1組を割り当てただけです(1語だけでは3種類しか作れないため、2語の組み合わせ=3×3=9通りのうち8通りを使い、残り1通り「同じ語の重複を除く」形で命令を作っています)。「見た目はオランウータンの鳴き声のようで人間には読みにくいが、計算能力はBrainfuckとまったく同じ」という、名前で笑わせながら本質を伝える構成のジョーク言語です。
| Ook! の2語 | Brainfuck | 意味 |
|---|---|---|
| Ook. Ook? | > | ポインタを1つ右へ |
| Ook? Ook. | < | ポインタを1つ左へ |
| Ook. Ook. | + | 今のセルの値を+1 |
| Ook! Ook! | - | 今のセルの値を-1 |
| Ook! Ook. | . | 今のセルの値を文字として出力 |
| Ook. Ook! | , | 入力を1文字読む(本ページは入力なし=常に0) |
| Ook! Ook? | [ | 今のセルが0なら対応する ] の次へジャンプ |
| Ook? Ook! | ] | 今のセルが0でなければ対応する [ の次へ戻る |
送信ゼロ(入力したコードはこの端末から出ません)。入力を読む命令(Ook. Ook!/Brainfuckの「,」)はこのページでは常に0を返します(入力欄を持たないため)。実行はステップ数の上限に達すると自動的に停止します。
もっと詳しく知りたい方はエソラング図鑑(Malbolgeなど16言語の解説)や、Brainfuckの遊び場(ステップ実行・テープ可視化・テキストからの自動生成)もどうぞ。
このツールについて
Ook!はBrainfuckの8命令を「Ook.」「Ook?」「Ook!」の2語1組(オランウータンの鳴き声に見立てた表記)に置き換えただけの言語です。命令セットはBrainfuckと完全に同じなので、このページではOok!↔Brainfuckの変換と、どちらの形でも実行できる場を用意しました。
Ook! は Brainf*ck と計算能力が完全に同じで、命令の見た目だけを変えた言語。Ook!→Brainf*ck、Brainf*ck→Ook! の両方向変換と実行ができます。
主な機能
- Ook! ⇄ Brainf*ck の双方向変換(位置つきエラー表示)
- そのまま実行して出力を確認
- Hello World のサンプルつき
- 送信ゼロ・入力命令「,」は常に0
よくある質問
Q. Ook! は Brainf*ck と何が違うのですか?
A. 計算の仕組みは完全に同じです。Brainf*ck の8命令それぞれに「Ook.」「Ook?」「Ook!」の2語1組を割り当てただけで、できることは変わりません。
Q. なぜ2語1組なのですか?
A. 3種類の語だけでは8命令に足りないためです。2語の組み合わせ(3×3=9通り)のうち8通りを使って、8命令すべてに割り当てています。
Q. 変換エラーが出ました。原因は?
A. 語が Ook. / Ook? / Ook! のいずれでもない、語数が奇数で2語1組にならない、存在しない組み合わせ(例: Ook? Ook?)のいずれかです。エラーには文字位置を表示します。
Q. 入力命令「,」は使えますか?
A. 使えません。このページは入力欄を持たないため、入力命令は常に0として扱われます。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。