당신은 단지 86 필요한 MOV
지시를 .
"M / o / Vfuscator (짧은 'o',"mobfuscator "처럼 들림)는 프로그램을"mov "명령어와"mov "명령어로만 컴파일합니다. 산술, 비교, 점프, 함수 호출 및 기타 프로그램에 필요한 모든 것은 모두 mov 작업을 통해 수행됩니다. 자체 수정 코드, 전송 트리거 계산 및 다른 형태의 비 움직임 부정 행위가 없습니다. "
진지하게,이 프리미티브는 Lisp Machine을 구현하지 않을 것입니다. 기계에는 I / O 및 가비지 콜렉션과 같은 기능이 필요합니다. 함수 호출 메커니즘은 말할 것도 없습니다! 좋아요, 함수 인 7 개의 기본 요소가 있습니다. 기계는 어떻게 함수를 호출합니까?
이러한 프리미티브가 무엇을 가능하게하는지에 대한 적절한 이해 는 Universal Turing Machine 의 명령어 세트를 노출 한다는 것 입니다. 그 지시는 "Lispy"이기 때문에 (Lisp로 말하는) 혀의 미끄러짐에 의해 우리는 이것을 "Lisp Machine"이라고 부릅니다. "Universal"은 기계를 프로그래밍 할 수 있음을 의미합니다. Universal Turing Machine에 적용되는 일부 조합 명령을 사용하여 모든 Turing Machine을 인스턴스화 할 수 있습니다. 하지만 지금까지이 모든 것은 순전히 수학적 구조입니다.
이 UTM을 실제로 시뮬레이션하려면 컴퓨터에서 탐색하기 위해 물리적으로 실현하려면 7 개의 Lisp 명령어 조합에서 튜링 머신을 생성하는 형식을 실제로 입력 할 수있는 방법을 제공하는 머신이 필요합니다. 그리고 어떤 형태의 출력도 필요합니다. 최소한 "예", "아니오"또는 "잠깐, 아직 실행 중입니다."라고 말할 수있는 기계입니다.
즉, 7 개의 명령어가 실제로 작동 할 수있는 유일한 방법은 환경을 제공하는 더 큰 시스템에서 호스트되는 경우입니다.
또한 Graham의 7 가지 프리미티브는 숫자에 대한 명시적인 지원이 없으므로 함수 ( "교회 숫자"기술)로 구성해야합니다. 어떤 생산 Lisp 구현도 그렇게 미친 짓을하지 않습니다.