¿Es correcto que ‘todos los lenguajes de computadora converjan a LISP’? ¿Por qué?

A2A. Creo que el punto de ese concepto es que los académicos tienden a ver las expresiones S de Lisp como árboles de análisis. Un árbol de análisis es un concepto técnico utilizado para describir un aspecto de cómo los lenguajes de programación se traducen en código de ejecución. Los académicos han hablado de cómo cuando miras una función Lisp, estás viendo un desglose explícito de su árbol de análisis, y cuando estás escribiendo una función, estás renunciando a la sintaxis típica del lenguaje y solo codificas el árbol de análisis directamente. Bien, pero cuando escribo el código Lisp, puedo pensar en algunas instancias raras en las que lo considero un árbol de análisis. Principalmente solo estoy pensando en cómo componer matemáticamente funciones que realizan un cálculo, y entiendo que hay una convención minimalista en el lenguaje para hacerlo. “Parse tree” es solo un concepto que a algunos les gusta imponer sobre eso.

Sin embargo, no me parece útil decir: “Todos los idiomas convergen a Lisp”. Encuentro la Décima Regla de Greenspun más aplicable e interesante: “Cualquier programa C o Fortran suficientemente complicado contiene una implementación ad hoc, especificada informalmente, llena de errores y lenta de la mitad de Common Lisp”.

Si observa cómo se traduce el código fuente en estructura interpretada, o cómo se traduce en código ejecutable, no se ve como Lisp en la parte inferior. ¿Se puede traducir cualquier idioma al Lisp? Sí, pero también se puede traducir cualquier idioma a cualquier otro idioma de Turing Complete. En ese sentido, no hay nada especial en Lisp. Su poder y aspectos interesantes residen en otras cualidades.

De alguna manera, todos los lenguajes de computadora también pueden converger a archivos por lotes de DOS.

Todos los lenguajes de computadora están completos, por lo que cualquier código en cualquier idioma es teóricamente expresable en cualquier otro.

El LISP básico tiene una sintaxis más cercana al cálculo lambda, por lo que puede considerarlo como la notación más simple para expresar un cálculo.

More Interesting

¿Cómo se puede encontrar el logaritmo de base 10 de un número de hasta 5 decimales con solo usar las cuatro operaciones básicas (+, -, *, /) con la ayuda de una calculadora?

¿Quiénes son las estrellas en ascenso en la informática teórica?

¿Cuáles son algunos enfoques de aprendizaje no supervisados ​​para la agrupación dada una matriz de distancias por pares?

¿Por qué se le dio al F-117 Nighthawk un prefijo F?

¿Podrán los robots hacer pruebas matemáticas e investigar todas las leyes físicas del universo mejor que los humanos?

Como teórico, ¿cómo guardas notas?

Cómo resolver la recurrencia [matemáticas] T (n) = 3T \ left (\ frac {n} {2} \ right) + n \ sqrt {n + 1}

Cómo mejorar las matemáticas básicas para programar

¿Cuál es la complejidad computacional de la satisfacción de resolución de restricciones sobre enteros? He leído que es polinomial para las igualdades y NP-duro para las desigualdades, pero, ¿no puedes convertir siempre una restricción de desigualdad en una igualdad agregando vars de holgura?

¿Cuáles son sus explicaciones intuitivas favoritas de temas complejos?

Cómo mejorar mi forma analítica de pensar para trabajar matemáticamente para la programación de computadoras

¿Se puede programar una computadora para probar problemas matemáticos complejos no resueltos?

¿Por qué las matemáticas discretas se llaman 'discretas'?

¿Cuántos dígitos de precisión pueden medir los experimentos físicos (PI)?

Cómo encontrar la suma de todos los números distintos cuyo MCM es N