Probablemente hay una razón Lisp es como es? Lisp fue diseñado para programar otros lenguajes y para calcular con representaciones simbólicas de código y datos. El límite entre el código y los datos ya no está allí. Esto influye en el diseño Y la implementación de un lenguaje de programación.
Lisp tiene sus características sintácticas para generar código nuevo, traducir ese código y ejecutarlo. Por lo tanto, el código pre-analizado también usa las mismas estructuras de datos (símbolos, listas, números, caracteres, ...) que también se usan para otros programas.
Lisp conoce sus datos en tiempo de ejecución; puede consultar todo por su tipo o clase. Las clases son objetos en sí mismas, al igual que las funciones. Entonces estos elementos del lenguaje de programación y los programas también son objetos de primera clase, pueden ser manipulados como tales. El lenguaje dinámico no tiene nada que ver con 'tipado dinámico'.
'Lenguaje dinámico' significa que los elementos del lenguaje de programación (por ejemplo a través de metacategorías y el protocolo metaobjeto) y el programa (sus clases, funciones, métodos, ranuras, herencia, ...) pueden ser examinado en tiempo de ejecución y puede ser modificado en tiempo de ejecución.
Probablemente cuantas más funciones añada a un idioma, más se verá como Lisp. Dado que Lisp es prácticamente el máximo local de un lenguaje de programación simple, dinámico y programable. Si desea algunas de estas características, entonces quizás quiera pensar qué características de su otro lenguaje de programa debe abandonar o si está dispuesto a abandonar. Por ejemplo, para un lenguaje simple de código como datos, todo el modelo de sintaxis C podría no ser práctico.
Por lo tanto, el estilo de C y el "lenguaje dinámico" podrían no ser realmente adecuados: la sintaxis es una parte de la imagen completa. Pero incluso el modelo de sintaxis C nos limita lo fácil que podemos trabajar con un lenguaje dinámico.
http: //en.wikipedia.org/wiki/Self-modifying_code # High_level_languages –
¿Qué quiere decir "código de auto modificación", y para el caso "dinámico"? Los dos generalmente no se consideran sinónimos. Si pudieras aclarar lo que quieres, probablemente te ayudemos mejor. –
Sí, he echado un vistazo a la página wiki antes, pero esperaba otros idiomas, más c/C++ como. – Marenz