ceceo común


Common Lisp ( CL ) es un dialecto del lenguaje de programación Lisp , publicado en el documento estándar ANSI ANSI INCITS 226-1994 (S20018) [1] (anteriormente X3.226-1994 (R1999) ). [2] Common Lisp HyperSpec , una versión HTML con hipervínculos, se ha derivado del estándar ANSI Common Lisp. [3]

El lenguaje Common Lisp fue desarrollado como un sucesor estandarizado y mejorado de Maclisp . A principios de la década de 1980, varios grupos ya estaban trabajando en diversos sucesores de MacLisp: Lisp Machine Lisp (también conocido como ZetaLisp), Spice Lisp , NIL y S-1 Lisp . Common Lisp buscó unificar, estandarizar y extender las características de estos dialectos de MacLisp. Common Lisp no es una implementación, sino una especificación del lenguaje . [4] Hay disponibles varias implementaciones del estándar Common Lisp, incluidos software gratuito y de código abierto y productos patentados. [5] Common Lisp es un propósito general,Lenguaje de programación multiparadigma . Admite una combinación de paradigmas de programación de procedimientos , funcionales y orientados a objetos. Como lenguaje de programación dinámico , facilita el desarrollo de software evolutivo e incremental , con compilación iterativa en programas eficientes en tiempo de ejecución. Este desarrollo incremental a menudo se realiza de forma interactiva sin interrumpir la aplicación en ejecución.

También es compatible con la anotación y la conversión de tipos opcionales, que se pueden agregar según sea necesario en las etapas posteriores de creación de perfiles y optimización, para permitir que el compilador genere un código más eficiente. Por ejemplo, fixnumpuede contener un número entero sin recuadro en un rango admitido por el hardware y la implementación, lo que permite una aritmética más eficiente que en números enteros grandes o tipos de precisión arbitraria. De manera similar, se le puede decir al compilador por módulo o por función qué tipo de nivel de seguridad se desea, utilizando declaraciones de optimización .

Common Lisp incluye CLOS , un sistema de objetos que admite métodos múltiples y combinaciones de métodos. A menudo se implementa con un protocolo de metaobjetos .

Common Lisp es extensible a través de características estándar como macros Lisp (transformaciones de código) y macros de lector (analizadores de entrada para caracteres).

Common Lisp proporciona retrocompatibilidad parcial con Maclisp y el Lisp original de John McCarthy . Esto permite que el software Lisp más antiguo se transfiera a Common Lisp. [6]