OISC

OISC(One-instruction set computer)とは、命令が1つのコンピューターのことである。 高度なメモリマッピングの場合、算術演算は複雑な処理をも可能とする。 そのため、一部の実装では、唯一の命令がSubleq(subtract and branch if less or equal to zero、減算と0以下なら分岐)となる場合がある。 また、いくつかのOISCを使用する言語は、チューリング完全である。 OISCは、URISC(Ultimate RISC、究極のRISC)を表記される場合もある。

利用

OISCは、命令が1つのみのため、実用には向いていないといえる。 また、OISCは、いくつかの難解プログラミング言語で使用されている。

さらに、OISCを使用しプログラミングを行う際は、初期の設定やメモリマッピングが重視される。

Subleq

Subleqは、通常3つのパラメータを持つ。 基本的なSubleqの構文は、Subleq(a,b,c)である。Subleqはbからaを減算し、 bに結果を格納し、結果が0以下場合にcのアドレスに制御を移す。

  ADDRESS   a b c
ADDRESS 00: 7 7 7
ADDRESS 04: 5 1 0
ADDRESS 07: 4 3 4

このコードの場合、以下の処理が行われる。

  1. 7-7を計算し、結果の0をbに格納
  2. bが0以下なので、アドレス7に移動
  3. 4-3を計算し、結果の1をbに格納
  4. 先がないので終了

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

マシンアーキテクチャ

以下はOISCアーキテクチャの例である。

  • BitBitJump
  • ByteByteJump
  • Blues Machine
  • DJN

関連項目

外部リンク

  • Esolang wikiにおける、OISCの記事
  • Esolang wikiにおける、Subleqの記事
アーキテクチャ
並列処理
パイプライン
レベル
スレッド
コア
フリンの分類
タイプ
コンポーネント
電源管理
  • APM
  • ACPI
  • Dynamic frequency scaling(英語版)
  • Dynamic voltage scaling(英語版)
  • Clock gating(英語版)
典拠管理データベース: 国立図書館 ウィキデータを編集
  • ドイツ