요약 : 라이스 정리에 따르면 모든 것이 불가능합니다. 그럼에도 불구하고, 나는 어떻게 이 가정으로 불가능한 것들에게 모든 시간을!
물론 라이스 정리는 단순히 "모든 것이 불가능하다"고 말하는 것은 아닙니다. "컴퓨터 프로그램의 모든 속성은 계산할 수 없습니다."
(모발을 나누려면 모든 "사소하지 않은"속성입니다. 즉, 모든 프로그램이 있거나 프로그램이 없는 속성은 간단하게 계산할 수 있습니다. 그러나 다른 속성은 계산할 수 없습니다.)
그것이 정리가 말하거나 말하는 것처럼 보입니다. 아마도 많은 똑똑한 사람들이이 정리의 정확성을 신중하게 확인했을 것입니다. 그러나 논리를 완전히 무시하는 것 같습니다! 있다 수많은 있는 프로그램의 특성 사소한 계산하기는! 예를 들면 다음과 같습니다.
정지하기 전에 프로그램이 몇 단계를 실행합니까? 이 숫자가 유한 한 것인지 무한한지를 결정하는 것은 정확히 계산 불가능한 Halting Problem입니다. 이 숫자가 유한 한 보다 크거나 작은지를 결정하는 것은 간단합니다! 최대 n 단계 까지 프로그램을 실행하고 정지 여부를 확인하십시오. 쉬운!
마찬가지로, 프로그램 은 첫 번째 m 개의 실행 단계 에서 개 이상의 메모리 단위를 사용 합니까? 사소한 계산 가능.
프로그램 텍스트에 라는 변수가 언급되어 있습니까? 사소한 텍스트 분석으로 답을 알 수 있습니다.
프로그램이 명령 호출합니까 ? 다시, 해당 명령 이름을 찾는 프로그램 텍스트를 스캔하십시오.
나는 특성을 충분히 볼 수 있습니다 할 뿐만 아니라 비 계산 가능한 볼을; 예를 들어, 프로그램의 전체 실행은 몇 번의 추가 작업을 수행합니까? 글쎄, 그것은 프로그램이 얼마나 많은 단계를 수행 하는지 묻는 것과 거의 동일 합니다. 그것은 사실상 Halting Problem입니다. 그러나 실제로 계산 하기 쉬운 보트 속성이있는 것처럼 보입니다 . 그러나 라이스 정리는 그들 중 어느 것도 계산할 수 없다고 주장합니다.
내가 여기서 무엇을 놓치고 있습니까?