ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
プログラミング言語などにおいて、それがチューリングマシンと同じ能力を持っていること。チューリング完全。
一般に、プログラミング言語と称されるものは、ほぼ全てがチューリングコンプリートである。但しチューリングコンプリートだからといってそれが全てプログラミング言語であるとは限らない。
単純そうに見えても、能力を満たす言語としては、Brainfuck、Whitespace、Grassなどといったものがある。
現在使われている主流のプログラミング言語は、このような単純な言語に、更に使いやすさを加えたものである、ともいえる。
チューリングマシンと同じ能力を持てばよい。最低限、次の機能を持っていれば、それは、記述性や可読性に問題があったとしても、チューリングコンプリートとなる。
つまり「読んで」「書いて」「比較できて」「条件ジャンプまたはプログラムのループができる」ことが少なくとも必要であると言える。
この他、実用面においては、結果を画面に出す機能なども必要だろう。
そしてこれだけの機能が備わっていることから、BrainfuckやWhitespaceなどは、明らかに実用的ではないがチューリングコンプリートと言える。
マークアップ言語であり版組エンジンであるTeXは、プログラムを書くことができる。
作者のKnuthは、TeXをプログラミング言語にするつもりはなかったと思われるが、版組に必要な機能を詰め込んだ結果、最終的に「チューリングコンプリートの関数型言語」になってしまったという、非常に稀な例である。
数式ではあるが、λ計算(ラムダ計算)はチューリングコンプリートである。
数式にループの機能など存在し得ないが、しかしλ計算は不動点コンビネータ(Yコンビネータ)で再帰を定義することが可能であり、これが事実上ループと等価の効果をもたらすため、λ計算はチューリングコンプリートなのである。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます