Bạn chỉ cần một x86 MOV
hướng dẫn .
"M / o / Vfuscator (viết tắt là 'o', nghe giống như" mobfuscator ") biên dịch các chương trình thành các lệnh" mov "và chỉ các lệnh" mov ". Số học, so sánh, bước nhảy, lệnh gọi hàm và mọi thứ khác mà chương trình cần là tất cả được thực hiện thông qua các hoạt động mov; không có mã tự sửa đổi, không có tính toán do phương tiện vận chuyển kích hoạt và không có hình thức gian lận không phải mov nào khác. "
Mặc dù vậy, nghiêm túc mà nói, những nguyên thủy này sẽ không triển khai Máy Lisp. Một máy cần có các tiện nghi như I / O và thu gom rác. Chưa kể đến một cơ chế gọi hàm! Được rồi, bạn có bảy nguyên thủy là các hàm. Làm thế nào để máy gọi một chức năng?
Sự hiểu biết đúng đắn về những gì nguyên thủy này có thể tạo ra là chúng hiển thị tập lệnh của Máy Turing Đa năng . Bởi vì những hướng dẫn đó là "Lispy", bằng một cú trượt lưỡi (nói bằng Lisp), chúng tôi lén lút gọi đây là "Máy Lisp". "Universal" có nghĩa là máy có thể lập trình được: với một số hướng dẫn kết hợp được áp dụng cho Máy Turing đa năng, chúng tôi có thể khởi tạo bất kỳ Máy Turing nào. Nhưng cho đến nay, tất cả những điều đó hoàn toàn là một cấu trúc toán học.
Để thực sự mô phỏng UTM này — nhận ra nó một cách vật lý để khám phá nó trên máy tính, chúng ta cần một máy cung cấp cách thức để chúng ta thực sự nhập các biểu mẫu đó tạo ra Máy Turing từ sự kết hợp của bảy lệnh Lisp đó. Và chúng ta cũng cần một số dạng đầu ra; máy để ít nhất có thể cho chúng tôi biết "có", "không" hoặc "Chờ đã, tôi vẫn đang chạy".
Nói cách khác, cách duy nhất bảy hướng dẫn đó có thể hoạt động thực tế là nếu chúng được lưu trữ trong một máy lớn hơn cung cấp môi trường.
Cũng lưu ý rằng bảy nguyên thủy của Graham không có hỗ trợ rõ ràng cho các con số, vì vậy bạn sẽ phải xây dựng chúng ngoài các hàm (kỹ thuật "Số nhà thờ"). Không có triển khai Lisp sản xuất nào làm điều điên rồ như vậy.