문제

question : 은 Gödel 번호 매기기 프로그램의 컴파일러입니다.

Wikipedia는 컴파일러가 다음과 같습니다. "컴퓨팅에서 컴파일러는 하나의 프로그래밍 언어 (소스 언어)로 작성된 컴퓨터 코드 (원본 언어)를 다른 언어 (대상 언어)로 변환하는 컴퓨터 프로그램입니다. https://en.wikipedia.org/wiki/compiler

또한 Wikipedia는 다음과 같이 알려줍니다. "Gödel 번호 매기기는 Gödel Number라고 불리는 고유 한 자연수의 고유 한 자연 번호의 각 기호와 잘 구성된 공식에 각 기호에 할당하는 함수입니다. https:///ko.wikipedia.org/wiki/g%c3%b6del_numbering

작업 완료 : 내 직감은 예라고합니다. 내 생각의 라인이 있습니다 : 프로그래밍 언어는 공식적인 언어입니다. 모든 프로그램은 잘 형성된 수식이며 컴파일러는이 수식의 각 기호를 컴퓨터가 읽을 수있는 숫자의 바이너리 표현에 할당합니다. (자세히 : 컴퓨터는 보편적 인 튜링 머신이므로 산술을 수행 할 수 있습니다)

그러나 나는 컴파일러가 일하는 방식에 대한 세부 사항을 모른다. 그래서 저의 추론이 정확한지 물어 보러 여기에왔다.

도움이 되었습니까?

해결책

아니오.다음 두 가지 C 함수를 고려하십시오.

int f(int a) {
    return a * 2;
}

int g(int a) {
    return a + a;
}
.

여기서 조금 자유로운 것이면, 둘 다 "일부 공식 언어의 잘 구성된 공식"입니다.그러나 최적화가 켜져있는 대부분의 C 컴파일러는 이러한 두 기능을 똑같은 코드로 컴파일합니다.이것은 Gödel 번호 매기기의 고유성을 위반합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top