通知:私は、おもしろいと思った答えに報奨金を差し上げます。
あなたの課題は、チューリング完全な 1命令セットコンピューター(OISC)を設計することです。
OISCは、1つの命令のみを使用する抽象マシンであり、機械語のオペコードが不要です。OISCは、単一の命令を賢明に選択し、無限のリソースを提供することで、複数の命令を持つ従来のコンピューターと同じ方法でユニバーサルコンピューターになることができます。
ここではチューリング完全OISCを作る単一のコマンドの例をいくつか示します。
ルール:
その解釈または証拠を提供する必要があります
あなたの言語の通訳者を提供する必要があります。このインタプリタは、メモリ/時間によってのみ制限される必要があります(たとえば、ユーザーが課した制限がない必要があります)。(怠laz以外の理由で)あなたの言語の通訳者を提供しない場合、あなたはそれが書かれることが可能であることを証明しなければなりません。通訳が可能でなければなりません。
チューリング完全性を証明する必要があります
あなたの言語がチューリング完全であることの正式な証拠を含める必要があります。これを行う簡単な方法は、他のチューリング完全言語と同じ動作を解釈できることを証明することです。解釈する最も基本的な言語はBrainf ** kです。
たとえば、Brainf ** kと同じコマンド(およびユーザーが課すメモリ制限の同じ欠如)をすべて備えた通常の言語は、Brainf ** kで実装できるものはすべて言語で実装できるため、チューリング完全です。 。
これは、非常に実装しやすいチューリング完全言語のリストです。
追加のOISC要件
このOISCには1つの命令のみを含める必要があります。複数の命令を使用して、そのうちの1つをチューリング完全にすることはできません。
OISCは任意の構文を使用できます。あなたはあなたの答えの中で何が命令であり、何がデータであり、何がノーオペレーション(例えば空白)であるかを定義すべきです。クリエイティブに!
引数は整数である必要はありません。たとえば、///はチューリング完全OISCの美しい例です。
入力と出力の取得方法と提供方法は、ユーザーに任されています。ほとんどのOISCは、特定のメモリ位置を介してI / Oを実装しますが、他の方法で実装することもできますので、見つけることをお勧めします。
有効な回答は、投稿に含めるか、言語で解決された簡単な課題にリンクすることにより、OISCにサンプルコードを提供する必要があります。
投票
投票者は、退屈な投稿に賛成しないようにしてください。例:
ただし、次のような興味深いクリエイティブな投稿を提出する必要があります。
- 数学方程式に基づいたOISC
- ニューラルネットワークに基づくチューリング完全ZISC
- 特定のメモリ位置以外の方法で出力I / Oが発生するOISC
勝ち
同じように人気コンテスト、最も多くの票と答えが勝ち!がんばろう!