Usa_botに、「ウサミンコード」というプログラミング言語を実行する機能をつけました
概要
ウサミンコードは、たった8種類の文字の並びだけで構築できるプログラミング言語です。おそらくピンときた方もいらっしゃると思いますが、これはいわゆる「Brainf*ck」(以降BF)の文字を別のものに置換した派生言語に相当するものです。
命令と言語としての仕様
BFの各命令を、以下の文字で代替します。
BF命令 | ウサミンコード命令 | 実行内容 |
---|---|---|
> | ウ | ポインタをインクリメントします。 |
< | サ | ポインタをデクリメントします。 |
+ | ミ | ポインタ位置の値をインクリメントします。 |
- | ン | ポインタ位置の値をデクリメントします。 |
, | 安 | 入力から1オクテット読み込んで、ポインタ位置に代入します。 |
. | 部 | ポインタ位置の値を出力します。 |
[ | 菜 | ポインタ位置の値が0なら、次の「々」の直後の命令までジャンプします。 |
] | 々 | ポインタ位置の値が0でない時、直前の「菜」の直後の命令までジャンプします。 |
その他の言語としての仕様は基本的にBFと同じです。
実行環境と、処理系としての仕様と制限
アイマストドン上で稼働している、Usa_botが実行機能を持っています。また、BFを実行できる環境において、命令を別の文字に変更できる処理系があれば、そちらで実行させることが出来ます。
Usa_botについては→http://twoterabytes.hatenablog.com/entry/2017/05/25/091430
Usa_botで稼働するウサミンコード処理系には、言語としての仕様や制限とは別に、以下の仕様・制限があります。
- 入力できるコードは480文字まで
- 「安」で標準入力をわたしたい場合、複数回に分けて渡すことは出来ない。実行時にすべて渡す必要がある
- 1命令の実行を1ステップとして、10000ステップまで
- コードの実行時間は0.1秒まで
- 文字コードはUTF-8を用いる
- 出力もUTF-8として解釈し、それでは解釈できない場合は16進文字列に変換して出力する
実行例
実装の理由
いやその、Halloween ❤ Codeって曲があるし、usamin ❤ codeってのも面白いかなって…