Usted sólo necesita un sistema x86 MOV
de instrucciones .
"El M / o / Vfuscator (abreviatura de 'o', suena como" mobfuscator ") compila programas en instrucciones" mov "y solo instrucciones" mov ". Aritmética, comparaciones, saltos, llamadas a funciones y todo lo demás que necesita un programa todo realizado a través de operaciones mov; no hay código de modificación automática, ningún cálculo activado por transporte y ninguna otra forma de trampa sin movimiento ".
Sin embargo, en serio, estas primitivas no implementarán una máquina Lisp. Una máquina necesita instalaciones como E / S y recolección de basura. ¡Sin mencionar un mecanismo de llamada a función! Bien, tienes siete primitivas que son funciones. ¿Cómo llama la máquina a una función?
La comprensión adecuada de lo que hacen posible estas primitivas es que exponen el conjunto de instrucciones de una máquina universal de Turing . Debido a que esas instrucciones son "Lispy", por un desliz de la lengua (hablando con un Lisp) furtivamente llamamos a esto una "Máquina Lisp". "Universal" significa que la máquina es programable: con algunas instrucciones de combinación aplicadas a la Universal Turing Machine, podemos crear una instancia de cualquier Turing Machine. Pero hasta ahora, todo eso es puramente una construcción matemática.
Para simular realmente este UTM, realizarlo físicamente para poder explorarlo en una computadora, necesitamos una máquina que nos proporcione una forma de ingresar esos formularios que crean máquinas de Turing a partir de combinaciones de esas siete instrucciones Lisp. Y también necesitamos alguna forma de salida; la máquina para al menos poder decirnos "sí", "no" o "Espera, todavía estoy funcionando".
En otras palabras, la única forma en que esas siete instrucciones pueden funcionar en la práctica es si están alojadas en una máquina más grande que proporciona el entorno.
También tenga en cuenta que los siete primitivos de Graham no tienen soporte explícito para números, por lo que tendría que construirlos a partir de funciones (técnica de "numerales de la Iglesia"). Ninguna implementación Lisp de producción hace una locura.