나는 또 다른 대답을 추가할지 여부를 잠시 고민했다. 다른 답변은 그의 질문의 중간에 초점을 맞 춥니 다 ( "turtur complete", "tautology"등). 첫 부분과 마지막 부분을 잡아서 더 크고 약간 철학적 인 그림을 보도록하겠습니다.
그러나 그것은 무엇을 의미합니까?
튜링이 완료되었다는 것은 무엇을 의미합니까?
"다른 Turing Machine을 시뮬레이션 할 수있다"고 말하지 않고 Turing Machine의 기능을 정의 할 수있는 방법이 있습니까?
비공식적으로 말하면, Turing complete는 메커니즘 이 얼마나 복잡하고, 깊고, 재귀 적이며, 복잡하고, (코드 측면에서) 그것이 긴 저장 공간이나 시간에 관계없이 생각할 수 있는 모든 알고리즘을 실행할 수 있음을 의미 합니다. 그것을 평가할 필요가있었습니다. 그것은 문제가 계산 가능한 경우에만 성공 할 수있는 것은 물론,하지만이 경우 이다 계산할 수, 그것은 것 (정지) 성공.
(NB : 이것이 "비공식적"인 이유를 찾으려면 더 정교한 표현으로 그 라인을 따라 진행되는 교회-투어링 논문 을 확인하십시오 .하지만 논문은 정확하거나 정확하지 않을 수 있습니다. @DavidRicherby 의견 에서이 작은 생략을 지적합니다.)
"알고리즘"은 오늘날 컴퓨터 알고리즘으로 일반적으로 이해하는 것을 의미합니다. 즉, 일부 제어 로직이 혼합 된 상태에서 스토리지를 조작하는 일련의 개별 단계입니다. 그러나 Oracle 머신과 같이 "추측"할 수는 없습니다.
실용적인 비 tc 언어의 예
직접 프로그래밍 한 경우 문자열을 일부 패턴과 일치시키는 데 사용되는 정규식을 알고있을 것입니다.
이것은 Turing Complete 가 아닌 구문의 한 예입니다 . 특정 문구와 일치하는 정규식을 만드는 것이 불가능한 운동을 쉽게 찾을 수 있습니다.
(이 반드시 실제 실제 애플리케이션에서 많은 프로그래머 화가있다) 예를 들어, 프로그래밍 언어 또는 XML 문서와 일치하는 정규 표현식을 만들 이론적 실제적으로 불가능하다 : 그것은 불가능한 정규 표현식은 블록 구조를 찾기위한 ( do ... end
또는 { ... }
언어로, XML 문서에서 태그를 열고 닫을 수 있습니다.) 예를 들어 한계가있는 경우, 예를 들어 "재귀"의 3 가지 수준 만 가질 수 있으며 정규식을 찾을 수 있습니다. 그러나 제한이 없다면 갈 수 없습니다.
소스 코드를 파싱하기 위해 C와 같은 Turing-complete language로 프로그램을 생성하는 것이 가능하기 때문에 (모든 컴파일러가 수행하는) 정규 표현식은 해당 프로그램을 시뮬레이션 할 수 없으므로 Turing-complete가 아닙니다.
자극
튜링 머신 자체의 아이디어는 실용적이지 않습니다. 즉, 튜링은 예를 들어 Charles Babbage 나 von Neumann과는 달리 실제 컴퓨터 나 이와 유사한 것을 만들기 위해 그것을 발명하지 않았습니다. Turing Machine의 개념을 갖는 요점은 매우 간단 하다는 것입니다 . 그것은 거의 아무것도로 구성되어 있지 않습니다. 가능한 (및 실제) 컴퓨터를 상상할 수있는 최소한으로 줄입니다.
이 단순화의 요점은 이론적 문제들 (중지 문제, 복잡성 수업, 이론적 컴퓨터 과학 자체가 다루는 것 등)에 대해 숙고하기가 쉽다는 것입니다. 특히 하나의 특징은 보통이다 매우 주어진 언어 나 컴퓨터가 단순히 튜링 기계 말했다 프로그래밍하여 튜링 기계를 시뮬레이션 할 수 있는지 여부를 확인하기 위해 (쉽게 이렇게이다!) 해당 언어로 쉽게.
무한대
무한한 시간이나 스토리지 가 필요하지 않습니다 . 그러나 시간과 스토리지는 모두 제한이 없습니다. 계산 가능한 모든 단일 실행에 대해 최대 값을 갖지만 해당 값이 커질 수있는 한계는 없습니다. 실제 컴퓨터에 결국 RAM이 부족하다는 사실이 여기에 있습니다. 이것은 물론 모든 물리적 컴퓨터에 대한 제한 사항이지만 기계의 이론적 인 "계산 능력"에는 명백하지 않습니다. 또한 실제로 실제로 걸리는 시간에 대해서는 관심이 없습니다. 따라서 우리의 작은 기계는 임의의 시간과 공간을 사용할 수 있으므로 절대적으로 비실용적입니다.
... 이후
한 가지 놀라운 마지막 포인트는 다음과 같은 간단한은 간단한 일이 할 수 있다는 것입니다 모든 것을 생각할 수있는 모든 실제 컴퓨터 수 이제까지 오늘날 우리가 알고있는 지금으로 적어도 - 전체 우주에서, (그냥 매우 느리게) 달성을.