KEMURI(プログラミング言語) 単語

プログラミングゲンゴケムリ

1.4千文字の記事
これはリビジョン 2769500 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

KEMURIは一夜の過ちにより生まれた。

概要

KEMURIとは2006年9月の情報学会若手の会の夜の議論が元になって生まれた難解プログラミング言語である。ちなみに同じ夜に難解プログラミング言語Grassも生まれたらしい

任意の文字列を生成・表示できるが、チューリング不完全な言語である。

言語仕様

1バイト単位のスタックを持つ。命令は以下の6つからなる。

  • ^: スタックの先頭2つをpopし、ビットごとのxorを計算してpushする。
  • ~: スタックの先頭をpopし、ビットごとのnotを計算してpushする。
  • ": スタックの先頭をpopし、それを2回pushする。スタック先頭の複製(duplicate)である。
  • ': スタックの先頭3つをpopし、先頭要素を末尾に並び替えてpushする。先頭から順にx y zという順に並んでいたのなら、y z xという順番に変わる(rotate)。
  • `: スタックにASCIIコードで"Hello, world!"を積む。
  • |: スタックの中身を文字コードだと見なして出力する。スタックは空になる。プログラムの最後で一度だけ使うことが推奨されている。

一見するだけでは気づきにくい仕様の特色としては、上記命令でスタックに積むことが出来る値は"Hello, world!"だけという点。つまり、任意の文字列をスタックに残したければ"Heollo, world!"を他の操作により目的の文字列の文字コードに変換していかなければならない。

  サンプルコード

Hello Worldは下記2文字で実装でき、当初はHQ9+に次ぐ短さでHello Worldでき、かつチューリング完全になる可能性を宿した言語(HQ9+もチューリング不完全)ということだったようである。

`|

残念ながら、2008年にHello Worldを0文字で実現できるチューリング完全なBrainCrashが登場したことにより、3番手になった上、最短でHello Worldが実行できるチューリング完全な言語になるという望みも断たれてしまった。

名前の由来

使用可能な命令が、最後に使用する|を除き全て上付き文字になっているため、ソースコードが煙突または線香から立ちのぼるに見えることから名付けられた。

KEMURI_PLUS

l(Lの小文字)が命令として追加される。その処理内容は「スタックの内容がBrainF*ckのコードとして実行される」。

これによりこの言語はチューリング完全になるということらしいが、計算ロジックを担うのはBrainF*ckインタープリターの部分であり、KEMURIの処理系は計算を行っておらず、これでは思考停止ではないか。まあ、もしかしたら、「BrainF*ckで分岐や繰り返しを実行するコード」を生成するライブラリが作れるのかもしれないが

なお、KEMURI_PLUSの実装は存在しないらしい。

関連リンク

2020年現在、主要なリンクはリンク切れになっている。下記はまだ現存するリンク。

関連項目

  • BrainF*ck
  • Grass
  • Hello World
  • HQ9+
  • BrainCrash
  • オワコン
  • プログラミング言語
  • 難解プログラミング言語
  • プログラミング関連用語の一覧

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/12/07(日) 18:00

ほめられた記事

最終更新:2025/12/07(日) 18:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP