抽象機械ちゅうしょうきかいとは、計算モデルのうち、チューリングマシンなどのような「機械っぽい」ものを指す語である。

概要

編集

理論計算機科学ないし主に計算理論がこれに関係する主たる分野であるが、現実のコンピュータへの応用などもある。他の「機械っぽくない」計算モデルも含む一般的な議論はそちらを参照のこと。

チューリングマシンの提案がそうであったように、計算可能性理論でも使われるが、レジスタマシンの記事にあるうちのいくつかのような、現実のコンピュータに比較的近い抽象機械は、計算複雑性理論や、あるいはより現実的な実際のコンピュータにおける計算量の議論のために使いやすいといったことに特徴がある。

1例として、チューリングマシンにおけるテープは、読み書きしたい目的の場所まで、ひとコマずつ移動させなければならず、少しでも複雑なことをすると途端に必要なステップ数は膨大となる。そのため、実際のコンピュータで使うようなアルゴリズムの計算量の検討には、チューリングマシンは向かない。それに対し例えば、random-access machineの頭字語で「RAM」という抽象機械は(en:Random-access machine)、名前の通りメモリにランダムアクセスが、すなわちメモリのどこでも一定ステップで読み書きが、できる。

キャッシュメモリなど、記憶の階層(en:Memory hierarchy)の段階が増えてきている近年では、速いメモリをできるだけ使うことが高速化の鍵になっており、計算量の議論もそれを考慮する必要がある場合もある。それを考慮した抽象機械の必要性もあるかもしれない。

SECDマシンのような、より実用を目的とした抽象機械もある。他の例としては、OCamlのベースであるCamlは、もともとはcategorical abstract machine(en:Categorical abstract machine)という抽象機械をベースとした実装だったことからその名前が付いた(後に別の抽象機械をベースに、大幅に改造された)。そのような抽象機械と、「仮想機械」という語が指すものとの違いは、いくぶんはっきりしない。明確に分けることは不可能だが、抽象というよりは具体に近いほうが仮想機械と言えるであろう(歴史的理由から、仮想機械(virtual machine)という語は、全く無関係ではないにしても異なった2種類のものを指すようになってしまっている。英語版 en:Virtual machine で system virtual machine ではなく process virtual machine としているほうが、ここで議論しているほうである)。

階層的分類

編集

いくらかの抽象機械は、階層的に分類できる。ここではチューリング完全のもののみを対象とする。以下は網羅したものではないし、このような分類のしかたが唯一のものというわけでもない。

  • 直列計算の機械
  • 並列計算の機械

以下は直列計算の機械のみである。

  • テープベース - チューリングマシンの変形など
    • シングルテープ、マルチテープチューリングマシン、決定的チューリングマシン、非決定的チューリングマシン、Wang B-マシン、ポストチューリングマシン、神託機械、万能チューリングマシン
  • レジスタベース - レジスタマシン
    • counter machine、RAM(Random-Access Machine)、RASP(Random-Access Stored-Program machine)、pointer machine

レジスタベースのそれぞれについての詳細は以下のようになる。

その他の分類

編集

脚注

編集
  • Macura, Wiktor K. “Abstract Machine”. mathworld.wolfram.com (英語).
  • Peter van Emde Boas, Machine Models and Simulations pp. 3?66, appearing in:
Jan van Leeuwen, ed. "Handbook of Theoretical Computer Science. Volume A: Algorithms and Complexity, The MIT PRESS/Elsevier, 1990. ISBN 0-444-88071-2 (volume A). QA 76.H279 1990.

この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。

📚 Artikel Terkait di Wikipedia

マイクロソフトのソフトウェア一覧

Manager System Center Service Manager(英語版) System Center Virtual Machine Manager(英語版) Microsoft Virtual Server Search Server(英語版) Skype for Business Server

Java Platform, Micro Edition

Configuration (CDC) 携帯電話のような非力なCPUを対象とする。 Java VMから新たにKVM (Kilobyte Virtual Machine) を開発し、Java Platform, Standard Edition (Java SE) とは一部互換性がないものの最小限の機能で動作するようにしたもの。

Java

ピアソン・エデュケーション、2006年、ISBN 4-89471-715-8 Tim Lindholm and Frank Yellin. The Java Virtual Machine specification, second edition. Addison-Wesley, 1999. ISBN 0-201-43294-3

アイバン・サザランド

Number 574, Sketchpad, A Man-Machine Graphical Communication System. - 博士論文。このときの指導教官は情報理論の父クロード・シャノンだった。 Duchess Chips for Process-Specific Wire Capacitance

Java Community Process

Java コミュニティ・プロセス(英: Java community process)またはJCPは、1998年に設立され、利害関係者が Java プラットフォームの将来のバージョンや機能に関与する定義に関与することを許した標準化の手続きである。 JCP は Java の仕様に関する要望をまとめる

情報技術

more broadly designating any technology that is used to generate, store, process, and/or distribute information electronically, including television and

モデリング (科学的)

Sons. ^ Colette Rolland (1993). "Modeling the Requirements Engineering Process." in: 3rd European-Japanese Seminar on Information Modelling and Knowledge

OpenJDK

implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical