COW (プログラミング言語)
From Wikipedia, the free encyclopedia
| パラダイム | 構造化プログラミング |
|---|---|
| 設計者 | Sean Heber |
| 型付け | なし |
| 影響を受けた言語 | Ook! |
COW(カウ)は、プログラミング言語の一つ。Ook!に影響を受けている。実用言語ではなく、難解プログラミング言語のひとつである。
牛の鳴き声"MOO"をMとm、Oとoに分け、3文字の組み合わせをトークンと解釈する。それ以外の文字はコメントとして扱う。
COWの命令はBrainfuckの命令に4つ加えたものである。
十分な長さのメモリと、ポインタが1つだけあることなどはBrainfuckと同じである。Brainfuckの命令との対応表は以下の通り。
| COW | Brainfuck | 内容 |
|---|---|---|
moO | > | ポインタをインクリメント |
mOo | < | ポインタをデクリメント |
MoO | + | ポインタの指す値をインクリメント |
MOo | - | ポインタの指す値をデクリメント |
oom | , | 入力から1バイトをポインタの指す値に代入 |
OOM | . | ポインタの指す値をASCII文字として出力 |
MOO | [ | ポインタの指す値が0なら、対応する「moo」にジャンプ |
moo | ] | ポインタの指す値が非0なら、対応する「MOO」にジャンプ |
mOO | なし | ポインタの指す値を特定の命令として実行(3は無効) |
OOO | なし | ポインタの指す値に0を代入 |
MMM | なし | レジスタに現在の値がない場合には現在のポインタの指す値をコピー。レジスタに値がある場合は、その値を現在のポインタの指す値に代入し、レジスタをクリアする |
Moo | なし | ポインタの指す値が0なら「oom」、非0ならば「OOM」を実行 |
それ以外の命令の動作は定義されていない。