数理論理学および理論計算機科学において、レジスタマシンは抽象機械の一般的なクラスであり、チューリングマシンに類似しているためチューリング完全である。テープとヘッドを使用するチューリングマシンとは異なり、レジスタマシンは複数の固有のアドレスを持つレジスタを使用して非負整数を格納する。レジスタマシンには、カウンタマシン、ポインタマシン、ランダムアクセスマシン(RAM)、ランダムアクセスプログラム格納マシン(RASP)など、複雑さが異なるいくつかのサブクラスが存在する。これらのマシンは、特に理論研究において、計算プロセスの理解に役立つ。レジスタマシンの概念は、教育目的や特定のハードウェアアーキテクチャへの依存度を低減するために、実用的な計算機科学における仮想マシンにも適用できる。
レジスタマシンは、1つまたは複数の「レジスタ」を使用することからその名が付けられました。チューリングマシンで使用されるテープとヘッドとは対照的に、このモデルは複数の固有のアドレスを持つレジスタを使用し、それぞれのレジスタには単一の非負整数が格納されます。
文献には少なくとも4つのサブクラスが存在する。複雑さの低い順に並べると以下のようになる。
適切に定義されたレジスタマシンモデルはすべてチューリング完全である。計算速度はモデルの詳細に大きく依存する。
実際のコンピュータサイエンスでは、基盤となるマシンアーキテクチャへの依存度を減らすために、仮想マシンと呼ばれる関連概念が時折用いられます。これらの仮想マシンは教育現場でも利用されています。教科書では、「レジスタマシン」という用語が仮想マシンを説明する際に互換的に使用されることがあります。[ 1 ]
レジスタマシンは以下で構成されます。
条件式「IF r=0 THEN z true ELSE z false」の詳細については、マッカーシー形式論を参照してください[ 5 ]。
1950年代初頭には2つの傾向が現れた。1つ目は、コンピュータをチューリングマシンとして特徴づけることである。2つ目は、チューリングマシンの能力を持つコンピュータのようなモデル、すなわち、逐次的な命令シーケンスと条件分岐を持つモデルを定義すること、いわゆるチューリング等価性である。この研究の必要性は、2つの「難問」の文脈で行われた。1つはエミール・ポスト[ 6 ]が提起した解決不可能な単語問題、すなわち「タグ」問題であり、もう1つはヒルベルト問題という非常に「難問」、すなわちディオファントス方程式に関する第10問である。研究者たちは、より「論理的」ではなく「算術的」な性質を持つチューリング等価モデルを探求していた。[ 2 ] : 281 [ 7 ] : 218
コンピュータの特性を明らかにするための第一歩は、ハンス・ヘルメス(1954年)[8]、ローザ・ペーター( 1958年)[ 9 ] 、ハインツ・カフェングスト(1959年)[ 10 ]によって始まり、第二歩はハオ・ワン(1954年、[ 11 ] 1957年[ 12 ])によって、そして前述のように、ズジスワフ・アレクサンダー・メルザック(1961年)[ 2 ] 、ヨアヒム・ランベック(1961年)[ 4 ]、マービン・ミンスキー(1961年、[ 3 ] 1967年[ 13 ])によってさらに進められました。
最後の5人の名前は、ユーリ・マティヤセヴィチによってその順序で明示的にリストアップされている。彼は続けて次のように述べている。
ランベック、メルザック、ミンスキー、シェパードソン、スタージスは、それぞれ独立して同時期に同じアイデアを発見した。先行研究に関する注記は下記を参照のこと。
その歴史は王氏のモデルから始まる。
王の研究はエミール・ポスト(1936)[ 6 ]の論文に続き、王は自身の王Bマシンの定義に至った。これは、わずか4つの原子命令を持つ2シンボルのポスト・チューリングマシン計算モデルである。
{ LEFT、RIGHT、PRINT、JUMP_if_marked_to_instruction_z }これら4つに、Wang(1954年、[ 11 ] 1957年[ 12 ])とCY Lee(1961年)[ 15 ]は、Postセットの別の命令{ERASE}と、Postの無条件ジャンプ{JUMP_to_instruction_z}(または、物事を簡単にするために条件付きジャンプJUMP_IF_blank_to_instruction_z、あるいはその両方)を追加しました。Leeはこれを「Wマシン」モデルと名付けました。
{ 左、右、印刷、消去、マークされている場合はジャンプ、[場合によってはジャンプまたは空白の場合はジャンプ] }王氏は、自身のモデルがチューリングマシンの理論とコンピュータの実践世界との間の「和解」となることを期待していると述べた。
王の研究は非常に影響力があった。ミンスキー(1961)[ 3 ]および(1967)[ 13 ] 、メルザック(1961)[ 2 ] 、シェパードソンとスタージス(1963)[ 7 ]が王の研究に言及している。実際、シェパードソンとスタージス(1963)は次のように述べている。
マーティン・デイビスは最終的にこのモデルを発展させ、(2記号)ポスト・チューリングマシンを開発した。
Wang/Post-Turingモデルの難点:
しかし、問題がありました。Wangモデル(7命令のポストチューリングマシンの6命令)は、その逐次的なプログラム命令の流れがどれほど優れていても、依然としてシングルテープのチューリング型デバイスでした。Melzak(1961)[ 2 ]とShepherdsonおよびSturgis(1963)[ 7 ]は、(特定の証明と調査の文脈で)この点に着目しました。
最初に考えたのは、各テープを無限に長く(任意の整数サイズに対応できるように)左端で終わるように「テープをカットする」ことでした。これらの 3 つのテープは「ポスト チューリング (つまり Wang のような) テープ」と呼ばれています。個々のヘッドは左 (デクリメント用) と右 (インクリメント用) に移動します。ある意味では、ヘッドは連結されたマークの「スタックの先頭」を示しています。または Minsky (1961) [ 3 ]および Hopcroft と Ullman (1979) [ 16 ] : 171ffでは、テープは常に左端のマークを除いて空白であり、ヘッドが印刷または消去することはありません。
ゼロのテストとジャンプがデクリメントの前に発生するように命令を記述するように注意する必要があります。そうしないと、マシンが「端から落ちたり」「端にぶつかったり」して、部分関数のインスタンスが作成されます。
Minsky (1961) [ 3 ]と Shepherdson–Sturgis (1963) [ 7 ]は、テープ上のデータがゲーデル数(またはその他の一意に符号化可能な符号化復号可能数) として表現されている場合、テープがわずか 1 つだけでもマシンがチューリング等価であることを証明しています。この数は計算が進むにつれて変化します。ゲーデル数エンコーディングを使用した 1 つのテープバージョンでは、カウンタマシンは (i) ゲーデル数を定数 (数 "2" または "3") で乗算し、(ii) 定数 (数 "2" または "3") で除算し、余りがゼロの場合はジャンプできる必要があります。 Minsky (1967) [ 13 ]は、2 つのテープが利用可能な場合、この奇妙な命令セットの必要性を { INC (r), JZDEC (r, z) } と便利な命令 { CLR (r), J (r) } に緩和できることを示しています。しかし、単純なゲーデル化は依然として必要である。同様の結果は、エルゴットとロビンソン(1964)[ 17 ]のRASPモデルに関しても見られる。
メルザック(1961)[ 2 ]のモデルは大きく異なっている。彼は自身のモデルを採用し、テープを垂直に反転させ、それを「地面の穴」と呼び、「小石カウンター」で埋めた。ミンスキーの「増加」と「減少」とは異なり、メルザックは小石の任意の数の適切な減算と任意の数の「加算」を可能にした。
彼は自身のモデル[ 2 ] : 288に対して間接アドレッシングを定義し、その使用例を2つ示しています[ 2 ] : 89。彼の「証明」[ 2 ] : 290-292は、彼のモデルがチューリング等価であるというものですが、非常に曖昧なため、読者は彼が間接アドレッシングを証明の要件として意図していたかどうか判断できません。
メルザックのモデルの遺産は、ランベックによる簡略化と、クックとレックハウによる1973年の記憶術の再登場である。[ 18 ]
ランベック(1961)[ 4 ]はメルザックの三項モデルを取り上げ、それを2つの単項命令(可能であればX+、そうでなければジャンプ)に分解した。これはミンスキー(1961)[ 3 ]が考案したのと全く同じ2つである。
しかし、ミンスキー(1961)[ 3 ]モデルと同様に、ランベックモデルは命令をデフォルトで順次実行します。X+とX−の両方が次の命令の識別子を持ち、ゼロテストが成功した場合はX−がジャンプ先命令も持ちます。
RASP(ランダムアクセス・ストアード・プログラム・マシン)は、カウンタマシンとして動作を開始し、その「命令プログラム」は「レジスタ」に格納されます。有限状態機械の「命令レジスタ」に類似していますが、それとは独立しており、少なくとも1つのレジスタ(「プログラムカウンタ」(PC)と呼ばれる)と1つ以上の「一時」レジスタが、現在の命令番号を記録し、それに基づいて動作します。有限状態機械の命令テーブルは、(i)適切なレジスタから現在のプログラム命令をフェッチし、(ii)プログラム命令を解析し、(iii)プログラム命令で指定されたオペランドをフェッチし、(iv)プログラム命令を実行する役割を担います。
ただし、問題があります。カウンタマシンシャーシに基づくと、このコンピュータのようなフォン・ノイマンマシンはチューリング等価ではありません。計算可能なものすべてを計算できるわけではありません。本質的に、このモデルは(非常に)有限なステートマシンの命令のサイズによって制限されます。カウンタマシンベースのRASPは、任意の基本再帰関数(乗算など)を計算できますが、すべてのμ再帰関数(アッカーマン関数など)を計算できるわけではありません。
Elgot–Robinson は、RASP モデルがプログラム命令を「自己修正」できるようにする可能性を調査しました。[ 17 ]このアイデアは、Burks–Goldstine–von Neumann (1946–1947) によって提案された古いもので、[ 19 ]「計算された goto」と呼ばれることもあります。Melzak (1961) [ 2 ] は、「計算された goto」を具体的に名前で言及していますが、代わりに間接アドレッシングをモデルに提供しています。
計算されたgoto:条件付きまたは無条件のジャンププログラム命令内の「gotoアドレス」を変更するRASP命令プログラム。
しかし、これだけでは問題は解決しません(ゲーデル数を用いる場合を除いて)。必要なのは、有限状態機械命令レジスタとTABLEの上限を(はるか)「超えた」プログラム命令のアドレスを取得する方法です。
ミンスキー(1967)[ 13 ]は、命令{CLR(r)、INC(r)、およびRPT(命令m~nを「a」倍する)}を備えたカウンタマシン(彼はこれを「プログラムコンピュータモデル」と呼んでいる)の調査で、この問題をほのめかしている。彼は問題の解決方法を教えてくれないが、次のように述べている。
しかし、ElgotとRobinsonは問題を解決しました。[ 17 ]彼らは、P0RASPにインデックス付き命令セットを追加しました。これは、間接アドレッシングのやや複雑な(しかしより柔軟な)形式です。彼らのP'0モデルは、命令で指定された「ベース」レジスタの内容を、命令で明示的に指定された「インデックス」に追加することによってレジスタをアドレス指定します(またはその逆で、「ベース」と「インデックス」を入れ替えます)。したがって、インデックス付きP'0命令は、インデックスなしP0命令よりも1つ多くのパラメータを持ちます。
1971年までに、ハートマニスはRASPモデルで使用するためにインデックス付けを間接参照に簡略化した。 [ 20 ]
間接アドレッシング:ポインタレジスタは、命令に必要なターゲットレジスタのアドレスを有限状態機械に提供します。言い換えれば、ポインタレジスタの内容は、命令で使用される「ターゲット」レジスタのアドレスです。ポインタレジスタが無制限であれば、RAMと、そのシャーシ上に構築された適切なRASPはチューリング等価になります。ターゲットレジスタは、命令で指定されるように、ソースレジスタまたはデスティネーションレジスタのどちらとしても機能します。
有限状態機械は、このターゲットレジスタのアドレスを明示的に指定する必要がないことに注意してください。単に、機械の他の部分に対して、「ポインタレジスタが指すレジスタの内容を取得して、それを使ってxyzを実行してください」と指示するだけです。命令によって、このポインタレジスタを名前で明示的に指定する必要があります(例:「N」、「72」、「PC」など)が、ポインタレジスタに実際に格納されている数値(おそらく279,431)を知る必要はありません。
CookとReckhow(1973)[ 18 ]はHartmanis(1971)[ 20 ]を引用し、彼のモデルをランダムアクセスマシン(RAM、つまり間接参照とハーバードアーキテクチャを備えたマシン)と呼ぶものに単純化している。ある意味では、Melzak(1961)[ 2 ]に戻ったことになるが、Melzakのモデルよりもはるかに単純なモデルである。
ミンスキーはMITリンカーン研究所で研究を行い、そこで論文を発表しました。彼の論文は1960年8月15日にAnnals of Mathematicsに掲載するために受理されましたが、1961年11月まで出版されませんでした。 [ 3 ]受理はメルザック[ 2 ]とランベック[ 4 ]の研究が受理され出版される1年前でした(それぞれ1961年5月と6月15日に受理され、1961年9月に並んで出版されました)。(i) 両者ともカナダ人で、Canadian Mathematical Bulletinに掲載されたこと、(ii) ミンスキーの研究はまだ査読付きジャーナルに掲載されていなかったため、どちらもミンスキーの研究を参照することはなかったこと、(iii) メルザックがワンを参照し、ランベックがメルザックを参照していることから、彼らの研究は同時期に独立して行われたと推測されます。
シェパードソンとスタージスにもほぼ同じことが起こった。[ 21 ]彼らの論文は1961年12月に受理されたが、これはメルザックとランベックの論文が受理されてからわずか数か月後のことだった。ここでも、彼らはミンスキーの論文をレビューする機会はほとんど(せいぜい1か月)もなかった。彼らは脚注で、エルショフ[ 22 ] 、カペンスト[ 10 ]、ペーター[ 9 ]の論文が「最近発表された」[ 21 ]と注意深く記している。219これらはかなり前に発表されたものだが、ドイツ語でドイツ語の雑誌に掲載されたため、アクセスの問題が生じる。
シェパードソンとスタージスの最終論文は、1963年まで査読付きジャーナルには掲載されなかった。[ 7 ]また、彼らが付録Aで指摘しているように、カペンスト(1959年)[ 10 ] 、エルショフ(1958年)[ 22 ] 、ペーター(1958年)[ 9 ]の「システム」はすべて、後に得られた結果と非常によく似ており、以下のセットと区別がつかない。
実際、シェパーソンとスタージスは次のように結論付けている。
出版日の順では、カペンスト(1959年) [ 10 ]、エルショフ(1958年)[ 22 ] 、ペーテル(1958年) [ 9 ]の著作が最初である。
背景テキスト:以下の文献目録には、背景として使用されるテキストが多数含まれています。1950 年代と 1960 年代に抽象機械に関する論文が急増した原因となった数学は、van Heijenoort (1967) [ 23 ]に見られます。これは、Frege (1879) [ 24 ]からGödel (1931) [ 25 ]までの 50 年間にわたるオリジナルの論文を集めたものです。Davis (編) The Undecidable (1965) [ 26 ]は、Gödel (1931) [ 25 ]から Gödel (1964) の追記まで、その流れを受け継いでいます。[ 27 ] : 71アラン・チューリング(1936 [ 28 ] –1937) とエミール・ポスト (1936) [ 6 ]の原著論文はThe Undecidableに収録されている。The Undecidableに原著論文の再録として掲載されているチャーチ、ロッサー、クリーネの数学は、クリーネ (1952) [ 29 ]でさらに発展しており、機械の背後にある数学をより深く理解しようとする者にとって必読のテキストとなっている。クリーネ (1952) [ 29 ]とデイビス (1958) [ 30 ]の両方が、多くの論文で参照されている。
カウンタマシンの優れた解説については、ミンスキー (1967) の第 11 章「デジタル コンピュータに類似したモデル」を参照してください。彼はカウンタマシンを「プログラム コンピュータ」と呼んでいます。[ 13 ]最近の概説は、van Emde Boas (1990) にあります。[ 31 ]ミンスキー (1961) [ 3 ] / ランベック (1961) [ 4 ]モデルの最近の解説は、Boolos–Burgess–Jeffrey (2002) にあります。[ 32 ]彼らは、チューリング マシンと部分再帰関数の等価性を示すためにランベックの「そろばんモデル」を復活させ、抽象マシン モデル (カウンタとチューリング) と再帰理論の数学の両方について大学院レベルの入門を提供しています。Boolos–Burgess (1970) [ 33 ]の初版から、このモデルはほぼ同じ解説で登場しました。
論文: 論文は、Wang (1957) [ 12 ]によるチューリングマシンの劇的な単純化から始まります。Wang (1957) [ 12 ]では、Turing (1936) [ 28 ]、Kleene ( 1952) [ 29 ]、Davis (1958) [ 30 ]、特に Post (1936) [ 6 ]が引用されています。一方、Wang は Melzak (1961) [ 2 ]、Minsky (1961) [ 3 ]、Shepherdson–Sturgis (1961–1963) [ 21 ] [ 7 ] によって参照されており、彼らはそれぞれ独立してチューリングテープを「カウンタ」に還元しています。Melzak (1961) [ 2 ]は、間接性を備えたペブルインホールカウンタマシンモデルを提供していますが、それ以上の処理は行っていません。 Elgot–Robinson (1964) [ 17 ]の研究は、コンピュータのようなランダムアクセス・プログラム内蔵マシンである RASP を定義し、制限付きカウンタマシンがμ 再帰関数を計算できないことを初めて調査したようです。この失敗は、 Minsky (1961) [ 3 ]のやり方でゲーデル数を厳しく使用しない限り、RASP モデルに「インデックス付き」命令 (つまり間接アドレッシング) を定義することにつながります。Elgot–Robinson (1964) [ 17 ]と、特に Hartmanis (1971) [ 20 ]は、自己修正プログラムを備えた RASP を調査しています。Hartmanis (1971) [ 20 ]は、Cook (1970 ) の講義ノートを引用して、間接アドレッシングを備えた命令セットを指定しています。[ 34 ]計算複雑性の研究で使用するために、クックと彼の大学院生レックハウ (1973) [ 18 ]は RAM の定義を提供しています (彼らのモデルとニーモニックの慣習はメルザックのものと似ていますが、論文ではメルザックへの言及はありません)。ポインターマシンは、クヌース (1968、[ 35 ] 1973) と独立にシェーンハーゲ (1980) の派生です。[ 36 ]
論文の大部分は学部レベルを超える数学を含んでおり、特にクリーネ(1952)[ 29 ]で優雅に提示された原始再帰関数とμ再帰関数、そしてブーロス–バージェス–ジェフリー(2002) [ 32 ]ではそれほど深くはないものの有用な内容となっている。
星印の付いた 4 つを除くすべてのテキストと論文は、目撃されています。これら 4 つはドイツ語で書かれており、Shepherdson–Sturgis (1963) [ 7 ]および Elgot–Robinson (1964) [ 17 ]の参考文献として掲載されています。Shepherdson –Sturgis (1963) [ 7 ]は、Shepherdson–Sturgis の付録 A で、彼らの結果について簡単に説明しています。少なくとも 1 つの論文 (Kaphengst (1959) [ 10 ]の用語は、Burke–Goldstine–von Neumann (1946–1947) [ 19 ]によるコンピュータ アーキテクチャの分析を彷彿とさせます。
1961年12月受理非常に貴重な参考資料です。付録Aでは、著者らは「4.1で使用される命令の最小性:類似システムとの比較」を参照し、他の4つの文献を引用しています。