
プログラムのチューリング完全性とか万能チューリング機械ってあるじゃないですか。これって、どんな挙動のプログラムでも1言語で書けるって事ですか?
色々と調べてみたのですが、どのサイトもどの資料も説明が難しかったので、ここで質問してます。私の認識は下の通りです。
チューリング完全のプログラムは、FORTRAN、C言語、Java、JavaScriptなど。
チューリング不完全のプログラムは、TeX、HTML、SQLなど。
要するに、
TeXは数式や楽譜の作成くらいの機能に制限されている。その一方で、FORTRANは数学的計算は勿論、3Gゲームや通販サイトなどFORTRAN1言語だけで何でも出来て、ありとあらゆるシステム構築に使えるって事ですか?
チューリングは、戦前イギリスの数学者の名前。彼は次の命題の証明をした。どんな複雑なコンピューターシステムでも中身を分析すれば、四則演算や条件分岐や反復など数種類の小さな基本的システムパーツの組合せになっている。FORTRANやC言語はこれを全て含んでいるから、FORTANは何でも出来る。一方、SQLは惜しいがチューリング完全に必須の基本的システムパーツが数種類だけ欠けていて、限界がある。SQLオンリーでゲームを作ろうとすれば、テトリスくらいなら出来るけど、ぷよぷよを作ろうとすれば別の言語を足す事になる。
正しいですか?
No.2ベストアンサー
- 回答日時:
私の認識にも間違いがあるかもしれませんが。
チューリング完全とは「チューリングマシンで実現できる」と言っているだけで、実際に何が「チューリングマシンでできる」かには言及していません。
よって
> FORTRANは数学的計算は勿論、3Gゲームや通販サイトなどFORTRAN1言語だけで何でも出来て、ありとあらゆるシステム構築に使える
「数学的計算」「3Gゲーム」「通販サイト」などが作れるかどうか、と「チューリング完全」かどうかとは、直接の関係はありません。
> TeXは数式や楽譜の作成くらいの機能に制限されている
文章書くだけの人には馴染みが無いかもしれませんが、TeXにはプログラミング言語としての一面があり、これはチューリング完全になっています。
http://ja.wikipedia.org/wiki/Brainfuck
このような、とても実用には使えない言語でも「チューリング完全」です。
また、チューリングマシンは、無限長の記憶領域を持ち、処理時間という概念はありません。
対し、現実のコンピュータは、記憶領域は有限であり、ある程度の処理時間が必要です。
チューリングマシンで「解ける」ことが判っている問題でも、現実のコンピュータではメモリが足りない、あるいは、計算時間が非現実的である、ということが沢山あります。
少し前に話題になった「組合せ爆発」の動画ですが、この「全ての経路を求める」問題は、正方形の分割数がいくつであろうとも、チューリングマシンを使って解を求めることができます。
しかし、実在のコンピュータで解く場合には、10x10で25万年かかっている、ということで「現実的には解けないのと一緒」と言えます。最後に出てきた高速のアルゴリズムでも、100x100等は「現実的には解けないのと一緒」でしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
Excel VBAで文字化けする (英語...
-
COBOLでのNOT = の AND条件
-
COBOLで文字タイプを数字...
-
UWSCはどのプログラミング言語?
-
VBScriptで引数を省略したい場合
-
VBSでDim、Private、Publicの違い
-
シグナルと例外の違い
-
プログラムからPDFを印刷する方法
-
TO_CHARで小数点以下がある場合...
-
プログラミング言語の制作方法...
-
パスカルケースの由来。
-
C言語とhtmlの違いを どな...
-
PL/Iソースからのコメント部分削除
-
C++ ってなんて読む?
-
UNITY Float型の接尾辞fって
-
グローバル変数の初期化のタイ...
-
VCとVC++
-
HTMLてインタプリタの類になる?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムからアイコンファイ...
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
C言語とhtmlの違いを どな...
-
プログラムに書かれる"%"記号の...
-
UNITY Float型の接尾辞fって
-
COBOLで文字タイプを数字...
-
Excel VBAで文字化けする (英語...
-
VCとVC++
-
HTMLとC++で、どんなホームペー...
-
ウェブサイトから特定の文字列...
-
C++における継続行
-
C++ ってなんて読む?
-
順列の内容をすべて表示するプ...
-
プログラムははぜ小文字大文字...
-
【Cか】ノベルゲーム【Jav...
-
VBScriptで引数を省略したい場合
-
ど素人です。7セグメント表示の...
-
.Net Framework APIがあればMFC...
-
VBSとWSHは読み方が違うだけで...
おすすめ情報