OISC

OISC（One-instruction set computer）は、命令が唯一のコンピュータである。 唯一の命令の一例としてSubleq(subtract and branch if less or equal to zero、減算して0以下なら分岐)がある。 いくつかのOISCは、チューリング完全である。URISC（Ultimate RISC、究極のRISC）ともURISC: The Ultimate Reduced Instruction Set Computer 。

 利用 
OISCは、実用には向いていないといえる。 いくつかの難解プログラミング言語としても実装されている。

OISCを使用しプログラミングを行う際は、初期の設定やメモリマッピングも重要である。

 Subleq 
Subleq命令は、3つのパラメータを持つ。Subleq(a,b,c)と表現する。Subleqはアドレスbの内容からアドレスaの内容を減算し、その結果をアドレスbに格納し、結果が0以下ならばcに制御を移す。

命令がひとつしかないのでオペコードは必要ない（0ビット）。パラメータ a, b, c を3個の連続したワードであらわす。以下に一例を示す。  ADDRESS   a b c
ADDRESS 00: 3 4 6
ADDRESS 03: 7 7 7
ADDRESS 06: 3 4 0このコードの場合、以下の処理が行われる。

 0から実行する
 アドレス4の内容(7) − アドレス3の内容(7)を計算し、結果の0をアドレス4に格納
 結果が0以下なので、6に移動
 アドレス4の内容(0) − アドレス3の内容(7)を計算し、結果の-7をアドレス4に格納
 結果が0以下なので、0に移動
 最初から繰り返し

また、Subleqのソースコードを書く際に、ソースコードを見やすくするために構文を少し変える場合もある。

 例 
その他のOISCの例である。

 BitBitJump
 ByteByteJump 
 Blues Machine
 DJN

 注 

 関連項目 
 難解プログラミング言語

 外部リンク 
 Esolang wikiにおける、OISCの記事
 Esolang wikiにおける、Subleqの記事

Category:難解プログラミング言語
Category:計算モデル