world programing lenguaje learn historia hello compiler common lisp terminology history

programing - lisp learn



¿Qué quiso decir John McCarthy por*programación pornográfica*? (5)

En la Historia de Lisp , McCarthy escribe:

La inesperada aparición de un intérprete tendió a congelar la forma del lenguaje, y algunas de las decisiones tomadas más bien alegremente para el documento `` Funciones recursivas ... '''' más tarde resultaron desafortunadas. Estos incluyen la notación COND para expresiones condicionales que conduce a una profundidad innecesaria de paréntesis, y el uso del número cero para denotar la lista vacía NIL y el valor de verdad falso. Además de fomentar la programación pornográfica, dar una interpretación especial a la dirección 0 ha causado dificultades en todas las implementaciones posteriores.

¿De qué está hablando?


... cero para denotar la lista vacía ...

porque 0==() ha sido el emoticon para pornografía desde 1958.

Ahora tu sabes


Creo que se trata de mezclar valores numéricos y lógicos, que aún se pueden ver en construcciones populares, probablemente originadas en Fortran, como por ejemplo while (1) . Hay muchos algoritmos C "inteligentes", que se basan en el hecho de que 0 es falso y cualquier otro valor no lo es.

Lo mismo se aplica en general a las llamadas API, como en POSIX o kernel de Linux, algunas de las cuales devuelven 0 en caso de falla, mientras que algunas -1 (hay una regla general, cuándo aplicar cuál, pero es solo folklore, tan a menudo es roto). Teniendo en cuenta el hecho de que en la época de McCarthy, esas cosas aún no estaban desarrolladas, puedes ver su poder "profético" incluso aquí.


El documento original de especificaciones de Fortran III, un documento técnico difundido en el invierno de 1958, describe algunas adiciones muy explícitas al lenguaje Fortran II, que incluyen ... ensamblaje en línea.

El PDF está here

A continuación una descripción tentadora de las "adiciones":

Algún código tabú es

Misteriosamente, Fortran-III nunca fue lanzado al público (ver sección 5) , pero se difundió de manera limitada antes de desaparecer silenciosamente.


El hecho de que demasiados detalles de implementación se estaban filtrando a un nivel más alto, es decir, mostrando demasiado