機械的にプログラムを実装できますか?


13

たとえばMicrosoft Wordの単一の目的(チューリング以外の完全な)機械的実装を構築することは可能ですか?反復子、一次関数、プログラミング技術の全範囲などを実装することは可能ですか?歯車やその他の機械部品は、データ構造やプログラムオブジェクトを表すことができますか?ある時点で、これは汎用のチューリングと同等のマシンを構築することを必要としますか、または各機能、変数などは、フライホイールおよび/またはギア、ラチェットの形で独自の機械的構造を持つことができますか?要約すると、標準的なコンピューター上の特定のソフトウェアを機械的な設計図にコンパイルできるかどうか疑問に思います。


Microsoft Wordを実行するものは、Turing Machineで実行する必要さえないと思います。なぜなら、Wordのすべての手順は、メインイベントループを除き、(おそらく)バグがある場合を除き)終了することがわかっているためです。
Realz Slaw


1
これが可能であれば(可能性が高いようですが)、コンパイラとして機能するチューリング完全でないマシンを作成し、ソースコードから他のマシンの設計図を作成することが可能です。完全にチューリングしている場合とそうでない場合があるマシン。
ニックジョンソン

@Realz Slaw:I / O、VBAマクロ、または拡張機能を含める場合ではありません。たとえば、無限のWord文書を入力した場合、Wordが文句を言うことはないでしょう。おそらく限界に達するのは、基礎となるOSです。
reinierpost

@reinierpostが、各ルーチンを完全にチューリングする必要はありません。それらは証明可能に終了するか、証明できないように終了します。すなわち、あなたがそれに無限のドキュメントを供給した場合、それはおそらく終了しないでしょう。私が指摘したことは、私たちが作るほとんどのプログラムはチューリング完全言語を使用する必要がないということです。これを行うことができれば、停止の問題には問題はありません。TLDR; ルーチンが終了したかどうかを証明できない場合、あなたはひどいプログラマーです。
Realzなスロー

回答:


23

はい、そうです。方法は次のとおりです。

基本的に、好きなプログラムを回路にコンパイルできます。例えば、プログラムを回路にコンパイルする方法を示す、Dan Ghicaと彼の協力者によるGeometry of Synthesisに関する研究を参照してください。

  1. ダン・R・ギカ 合成のジオメトリ:VLSI設計への構造化アプローチ
  2. ダンR.ギカ、アレックススミス。合成の幾何学II:ゲームから遅延の影響を受けない回路まで
  3. ダンR.ギカ、アレックススミス。合成のジオメトリIII:型推論によるリソース管理。
  4. ダンR.ギカ、アレックススミス、サトナムシン。合成のジオメトリIV:アフィン再帰を静的ハードウェアにコンパイルします。

その後、回路はエンジニアリングで何度も再登場します。John Baezは、今週のFinds 288-296で、概念の類推の大きな表を提供し、多くのつながりを解決します。したがって、Danのコンパイラが生成する回路図は、本当に必要な場合、機械システムまたは油圧システムとしてインスタンス化できます。

╔══════════════════════════════════════════════════════════════╗
║                 displacement  flow      momentum     effort  ║
╠══════════════════════════════════════════════════════════════╣
║ Mechanics      position      velocity  momentum     force    ║
║ (translation)                                                ║
║                                                              ║
║ Mechanics      angle         angular   angular      torque   ║
║ (rotation)                   velocity  momentum              ║
║                                                              ║
║ Electronics    charge        current   flux         voltage  ║
║                                        linkage               ║
║                                                              ║
║ Hydraulics     volume        flow      pressure     pressure ║
║                                        momentum              ║
╚══════════════════════════════════════════════════════════════╝
  1. http://math.ucr.edu/home/baez/week288.html
  2. http://math.ucr.edu/home/baez/week289.html
  3. http://math.ucr.edu/home/baez/week290.html
  4. http://math.ucr.edu/home/baez/week291.html
  5. http://math.ucr.edu/home/baez/week294.html
  6. http://math.ucr.edu/home/baez/week296.html

12
結果:ソフトウェア特許は意味をなしません。
アンドラスサラモン

1
私が質問する方法をほとんど知らなかった質問に対する素晴らしい答え。追加されたチャートをありがとう!
アレックスナイ

5

これの実用的な例は、ボストン科学博物館にあるティンカー玩具で作られたTic Tac Toeコンピューターです(元々はMITの学生チームによって作成されました)。もちろん、これはMicrosoft Wordよりもはるかに簡単です。

これは、Scientific Americanの1989年の記事です。

そこにはまた、マシンがから作らチューリングされているレゴ(それは確か---運動のためのコンピュータを---電気を使用しているため、これはビットを騙し、私はデザインがこの問題を回避するように変更することができると思います)金属くずを、そしてより。


記事とレゴマシンを楽しんだ、ありがとう。
アレックスナイ

1

ハードウェアでエディターを作成する例を具体的に説明しようとして、オペレーティングシステムとエディターの両方を完全にハードウェアで実装した初期の実験コンピューターが構築されました。その後、エディターはソフトウェアに置き換えられ、必要なハードウェアが大幅に削減されました。これは、コンピューターのアーキテクチャと歴史に関する本で説明されています。残念ながら、名前を忘れてしまい、元のソースを追跡するためのキーワードが見つかりませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.