Ceceo común de CMU
CMU Common Lisp ( CMUCL ) es una implementación gratuita del lenguaje de programación Common Lisp para sistemas operativos similares a UNIX, incluidos Linux y FreeBSD, desarrollado originalmente en la Universidad Carnegie Mellon . Es el antepasado del Steel Bank Common Lisp libre y del comercial Scieneer Common Lisp .
Historia
La historia del sistema comenzó incluso antes de la llegada de Common Lisp . Originalmente era parte de Spice Lisp, creada en 1980 en la Universidad Carnegie Mellon para la estación de trabajo PERQ de 16 bits, cuya arquitectura brindaba soporte para lenguajes de alto nivel mediante la programación del kernel de hardware en microcódigo . En 1985, se creó el compilador de Python y CMUCL se trasladó a las estaciones de trabajo IBM PC RT , MIPS y SPARC que ejecutan UNIX . Las primeras versiones de CMUCL no eran compatibles con Intel x86 debido a la incompatibilidad del kernel con esta arquitectura (la implementación dependía en gran medida de la presencia de una matriz de registros lo suficientemente grande, que no se encuentra en la familia de procesadores x86).
Luego de que la universidad abandonara este proyecto a favor de Dylan , para el cual también se utilizaron los desarrollos de CMUCL, la comunidad continuó con el mantenimiento del sistema.
En 1996, el equipo de mantenimiento estableció el lanzamiento regular de actualizaciones del sistema, al mismo tiempo que se portó a x86, inicialmente para FreeBSD, luego para Linux. El problema de la incompatibilidad arquitectónica se resolvió creando un nuevo recolector de basura.
Por el momento, el sistema es de dominio público, su mantenimiento continúa. La última versión estable (21c) se lanzó en octubre de 2017.
Compilador y módulos de tiempo de ejecución
CMUCL contiene un intérprete de código fuente, un intérprete de bytecode y un compilador.
- El compilador del código de máquina de la plataforma de destino CMUCL se llama "Python" (que no debe confundirse con el lenguaje de programación Python ). Según los autores, con una codificación adecuada (escribir un programa teniendo en cuenta los requisitos de rendimiento y utilizando una serie de declaraciones formalmente opcionales), los costes generales adicionales al ejecutar un programa compilado con CMUCL prácticamente no superan los de lenguajes como C++ .
- El intérprete está diseñado principalmente para el desarrollo interactivo, pero también se puede usar simplemente para cargar y ejecutar rápidamente código Lisp en ausencia de requisitos estrictos de velocidad.
- Una máquina virtual para ejecutar programas previamente convertidos por el compilador en bytecode compacto. Esta característica rara vez se usa en la actualidad y era popular en los primeros días del sistema porque permitía descargar el código a través de una conexión lenta a Internet para que se ejecutara más rápido.
Características clave
- Recolección de basura eficiente y soporte de multiprocesamiento en la plataforma x86.
- Interfaz con código C externo, acceso directo a las bibliotecas del sistema en la mayoría de las plataformas, acceso directo a las llamadas del sistema en UNIX.
- Soporte para comunicación entre procesos y llamadas a procedimientos remotos.
- Implementación del sistema de objetos CLOS .
- Depurador de GUI, generador de perfiles.
- Interfaz con X11 Window System (CLX) con librería propia de widgets gráficos (Garnet).
- Flujos de E/S extensibles por software.
- Editor de texto Hemlock (como Emacs ) escrito en Common Lisp.
Notas
Enlaces
ceceo común |
---|
Implementaciones |
|
---|
Software | bibliotecas |
- CLSQL_
- -HTTP
- CL-PPCRE
- CLX
- acorazado
- Red simbólica
- Web poco común
- bloques web
- jorobado
- AllegroCache
- ASDF
- CLiki
- CLIMA
|
---|
Aplicaciones |
|
---|
Entornos de desarrollo |
|
---|
|
---|
Publicaciones |
- común el idioma
- de IA
- El arte del protocolo de
- en
- común práctico
- Programación orientada a objetos en Common
|
---|
comité de diseño |
|
---|
Otro |
|
---|