「OISC」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
OISCの記事を作りました
タグ: 参考文献(出典)に関する節がない記事の作成 カテゴリを含まない記事の作成
 
Kvibesvice (会話 | 投稿記録)
ページ「One-instruction set computer」の翻訳により作成
1行目: 1行目:

'''OISC'''とは、命令が1つのコンピューターのことである。
{{Expand English}}
高度なメモリマッピングの場合、算術演算は複雑な処理をも可能とする。

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


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


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


== Subleq ==
== Subleq ==
Subleqは、通常3つのパラメータを持つ。 基本的なSubleqの構文は、<code>Subleq(a,b,c)</code>である。Subleqはbからaを減算し、 bに結果を格納し、結果が0以下場合にcのアドレスに制御を移す。<syntaxhighlight>
Subleqは、通常3つのパラメータを持つ。
基本的なSubleqの構文は、<code>Subleq(a,b,c)</code>である。Subleqはbからaを減算し、 bに結果を格納し、結果が0以下場合にcのアドレスに制御を移す。
<syntaxhighlight>
ADDRESS a b c
ADDRESS a b c
ADDRESS 00: 7 7 7
ADDRESS 00: 7 7 7
ADDRESS 04: 5 1 0
ADDRESS 04: 5 1 0
ADDRESS 07: 4 3 4
ADDRESS 07: 4 3 4
</syntaxhighlight>
</syntaxhighlight>このコードの場合、以下の処理が行われる。

このコードの場合、以下の処理が行われる。
# 7-7を計算し、結果の0をbに格納
# 7-7を計算し、結果の0をbに格納
# bが0以下なので、アドレス7に移動
# bが0以下なので、アドレス7に移動
# 4-3を計算し、結果の1をbに格納
# 4-3を計算し、結果の1をbに格納
# 先がないので終了
# 先がないので終了

<span> </span>


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

== マシンアーキテクチャ ==

=== ビット操作機 ===

==== BitBitJump ====

==== トーガコンピューター ====

==== マルチビット複写機 ====

=== トランスポートトリガーアーキテクチャ ===

=== 算術ベースのチューリング完全マシン ===

== 命令タイプ ==

=== ゼロに等しくない場合は減算して分岐 ===

=== ゼロ以下の場合は減算して分岐 ===

==== 合成された指示 ====

==== エミュレーション ====

=== 負の場合は減算して分岐 ===

==== 合成された指示 ====

=== 算術機械 ===

=== 逆減算し、借りる場合はスキップします ===

==== 例 ====

=== クリプトレク ===
[[File:Cryptoleq_Processor.jpeg|サムネイル| NYUアブダビで製造されたCryptoleqプロセッサ]]


== 関連項目 ==
== 関連項目 ==

* [[レジスタマシン|レジスター]]
* [[チューリング陥穽|チューリング陥穷]]
* [[難解プログラミング言語]]
* [[難解プログラミング言語]]

== 参考文献 ==
{{Reflist|refs=<ref name=urisc>{{Cite journal
| last = Mavaddat
| first = F.
|author2=Parhami, B.
| title = URISC: The Ultimate Reduced Instruction Set Computer
| journal = Int'l J. Electrical Engineering Education
| volume = 25
| issue = 4
| pages = 327–334
| publisher = Manchester University Press
| date = October 1988
|url=http://www.ece.ucsb.edu/~parhami/pubs_folder/parh88-ijeee-ultimate-risc.pdf
| doi =10.1177/002072098802500408
| s2cid = 61797084
| access-date = 2010-10-04}}
This paper considers "a machine with a single 3-address instruction as the ultimate in RISC design (URISC)". Without giving a name to the instruction, it describes a SBN OISC and its associated assembly language, emphasising that this is a ''universal'' (i.e., [[Turing-complete]]) machine whose simplicity makes it ideal for classroom use.</ref>

<ref name=caamp>{{Cite book
|last = Gilreath
|first = William F.
|author2 = Laplante, Phillip A.
|title = Computer Architecture: A Minimalist Perspective
|publisher = [[Springer Science+Business Media]]
|year = 2003
|url = http://www.caamp.info
|isbn = 978-1-4020-7416-5
|url-status = dead
|archive-url = https://web.archive.org/web/20090613042342/http://www.caamp.info/
|archive-date = 2009-06-13
}}
Intended for researchers, computer system engineers, computational theorists and students, this book provides an in-depth examination of various OISCs, including SBN and MOVE. It attributes SBN to W. L. van der Poel (1956).</ref>

<ref name=agut>{{Citation
| last1 = Nürnberg
| first1 = Peter J.
| last2 = Wiil
| first2 = Uffe K.
| last3 = Hicks
| first3 = David L.
| title = Metainformatics: International Symposium, MIS 2003
| place = Graz, Austria
| publisher = [[Springer Science+Business Media]]
|date=September 2003
| chapter = A Grand Unified Theory for Structural Computing
| chapter-url=https://books.google.com/books?id=uxjigT31ns4C&pg=PA1
| pages = 1–16
|url=http://www.informatik.uni-trier.de/~ley/db/conf/metainformatics/metainformatics2003.html
| isbn = 978-3-540-22010-7}}
This research paper focusses entirely on a SUBLEQ OISC and its associated assembly language, using the name SUBLEQ for "both the instruction and any language based upon it".</ref>

<ref name=dwj>{{Cite journal
| last = Jones
| first = Douglas W.
| title = The Ultimate RISC
| journal = ACM SIGARCH Computer Architecture News
| volume = 16
| issue = 3
| pages = 48–55
| publisher = ACM
| location = New York
| date = June 1988
|url=http://www.cs.uiowa.edu/~jones/arch/risc/
| doi = 10.1145/48675.48683
| s2cid = 9481528
| access-date = 2010-10-04}}
"Reduced instruction set computer architectures have attracted considerable interest since 1980. The ultimate RISC architecture presented here is an extreme yet simple illustration of such an architecture. It has only one instruction, move memory to memory, yet it is useful."</ref>

<ref name=deh>{{Citation
| last = Catsoulis
| first = John
| title = Designing embedded hardware
| publisher = [[O'Reilly Media]]
| year = 2005
| edition = 2
| pages = 327–333
| isbn = 978-0-596-00755-3}}</ref>

<ref name=crq>{{Citation
| first = Oleg
| last = Mazonka
| author2 = Tsoutsos, Nektarios Georgios
| author3 = Maniatakos, Michail
| title = Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and Unencrypted Computation
| journal = IEEE Transactions on Information Forensics and Security
| year = 2016
| volume = 11
| issue = 9
| pages = 2123–2138
| doi= 10.1109/TIFS.2016.2569062| s2cid = 261387
}}</ref>}}


== 外部リンク ==
== 外部リンク ==

* [https://esolangs.org/wiki/OISC Esolang wikiにおける、OISCの記事]
* [https://esolangs.org/wiki/OISC Esolang wikiにおける、OISCの記事]
* [https://esolangs.org/wiki/Subleq Esolang wikiにおける、Subleqの記事]
* [https://esolangs.org/wiki/Subleq Esolang wikiにおける、Subleqの記事]
* [[esolang:Subleq|難解プログラミング言語wikiのSubleq–]]通訳、コンパイラ、例、派生言語
* {{YouTube|NmWwRmvjAE8|Reductio ad absurdum}}クリストファーDomasによって
* [https://web.archive.org/web/20151121172708/http://www.sccs.swarthmore.edu/users/06/adem/engin/e25/finale/ 研究所subleqコンピュータ]- [[FPGA|FPGAの]]実装使用して[[VHDL|VHDLを]]
* [http://catb.org/~esr/retro/#emulators レトロコンピューティング博物館]–SBNエミュレーターとサンプルプログラム
* [http://bitstuff.blogspot.com/2007/02/subtract-and-branch-if-negative.html ラボ用SBNコンピューター]–7400シリーズ集積回路で実装
* [[esolang:RSSB|難解プログラミング言語wikiのRSSB–]]通訳者と例
* [http://www.ddj.com/embedded/221800122?pgno=1 ドブ博士の32ビットOISC実装]– [[Verilog]]を使用した[[FPGA]]上のトランスポートトリガーアーキテクチャ(TTA)
* [http://www.maxim-ic.com/appnotes.cfm/appnote_number/3222 MAXQアーキテクチャの概要]–転送マップ図が含まれています
* [http://sourceforge.net/projects/oiscemulator OISC-エミュレーター]–グラフィカルバージョン
* [https://github.com/jbangert/trapcc TrapCC] (最近のIntel x86 MMUは、実際にはチューリング完全なOISCです。 )
* [http://cs.drexel.edu/~bls96/oisc/ SBNシミュレーター]–CARDboardの計算支援に触発されたシミュレーターと設計
* [http://laughtonelectronics.com/Arcana/One-bit%20computer/One-bit%20computer.html 60ヘルツでの1ビットコンピューティング]–コンピューターと[[有限オートマトン|ステートマシンの]]中間
* [https://pragprog.com/magazines/2012-03/the-nor-machine NORマシン]{{snd}}1つの命令のみでCPUを構築するための情報
* [https://github.com/momalab/cryptoleq クリプトレク]{{snd}}Cryptoleqリソースリポジトリ
* [https://sites.google.com/site/comparchampsite/ CAAMP]{{snd}}コンピュータアーキテクチャミニマリストの視点
* [http://gerigeri.uw.hu/DawnOS/ DawnOS] –SUBLEQアーキテクチャのオペレーティングシステム
* [https://alecdee.github.io/unileq/index.html Unileq] –符号なし整数を使用するSUBLEQのバリアント
{{Clear}}
[[Category:難解プログラミング言語]]
[[Category:計算モデル]]

2021年2月17日 (水) 09:45時点における版

OISCとは、命令が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のソースコードを書く際に、ソースコードを見やすくするために構文を少し変える場合もある。

マシンアーキテクチャ

ビット操作機

BitBitJump

トーガコンピューター

マルチビット複写機

トランスポートトリガーアーキテクチャ

算術ベースのチューリング完全マシン

命令タイプ

ゼロに等しくない場合は減算して分岐

ゼロ以下の場合は減算して分岐

合成された指示

エミュレーション

負の場合は減算して分岐

合成された指示

算術機械

逆減算し、借りる場合はスキップします

クリプトレク

NYUアブダビで製造されたCryptoleqプロセッサ

関連項目

参考文献

引用エラー: <references> で定義されている name "urisc" の <ref> タグは、先行するテキスト内で使用されていません。
引用エラー: <references> で定義されている name "caamp" の <ref> タグは、先行するテキスト内で使用されていません。
引用エラー: <references> で定義されている name "agut" の <ref> タグは、先行するテキスト内で使用されていません。
引用エラー: <references> で定義されている name "dwj" の <ref> タグは、先行するテキスト内で使用されていません。
引用エラー: <references> で定義されている name "deh" の <ref> タグは、先行するテキスト内で使用されていません。

引用エラー: <references> で定義されている name "crq" の <ref> タグは、先行するテキスト内で使用されていません。

外部リンク