Articulo de referencia

Ikarus (implementación del esquema)

Ikarus Scheme es un compilador incremental optimizador de software libre para R6RS Scheme que compila directamente a la arquitectura x86 IA-32 . Ikarus es la primera implementac...

Ikarus Scheme es un compilador incremental optimizador de software libre para R6RS Scheme que compila directamente a la arquitectura x86 IA-32 . Ikarus es la primera implementación pública de una gran parte del estándar R6RS Scheme. [ 1 ] La versión 0.0.3 contiene el 94 % del total de formularios y procedimientos R6RS. [ 2 ] El desarrollo se detuvo en 2008.

Diseño

El desarrollador del compilador , Abdulaziz Ghuloum, era estudiante de doctorado en la Universidad de Indiana bajo la tutela de R. Kent Dybvig , el desarrollador de Chez Scheme , quien ha influido en el desarrollo de Ikarus.

Algunas de las ideas detrás del diseño de Ikarus Scheme se detallan en "Un enfoque incremental para la construcción de compiladores" del desarrollador. [ 3 ] Ikarus es autoalojado, con la mayor parte del compilador y las primitivas escritas en Scheme y solo algunas partes del sistema de tiempo de ejecución escritas en C. Además, en lugar de usar un lenguaje intermedio externo como C, LLVM o C-- , compila directamente a código máquina para aprovechar mejor la arquitectura de la máquina subyacente.

Ikarus utiliza la biblioteca portátil R6RS y el sistema de sintaxis y casos , también desarrollados por Abdulaziz Ghuloum y descritos en el artículo «Implicit phasing for R6RS libraries». [ 4 ] Por último, el artículo «Generation-Friendly Eq Hash Tables» aborda la implementación de tablas hash en Ikarus. [ 5 ]

Requisitos del sistema

Ikarus se ejecuta en x86, pero requiere compatibilidad con SSE2 para manejar cálculos aritméticos de punto flotante (FP), por lo que no generará código para chips Intel anteriores a Pentium 4 ni para chips Advanced Micro Devices (AMD) anteriores a Athlon 64. La versión 0.0.3 ha sido probada y se ejecuta en:

Referencias

  1. Ghuloum, Abdulaziz (31 de octubre de 2007). "Lanzamiento inicial de Ikarus: el compilador preferido por los programadores de R6RS" . Grupo de noticias : comp.lang.scheme . Usenet: fg9mbr$22g$1@aioe.org . Consultado el 28 de noviembre de 2007 .  
  2. Ghuloum, Abdulaziz (2008-02-02). "Ikarus Scheme: History" . Internet Archive . Archivado del original el 6 de junio de 2009. Recuperado el 1 de septiembre de 2024 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  3. Ghuloum, Abdulaziz (17 de septiembre de 2006). "Un enfoque incremental para la construcción de compiladores" (PDF) . Scheme and Functional Programming, 2006. Portland, Oregón. págs. 27–37 . Recuperado el 28 de noviembre de 2007 . 
  4. Ghuloum, Abdulaziz ; Dybvig, R. Kent (2007). "Fase implícita para bibliotecas R6RS" . Actas de la Conferencia Internacional ACM SIGPLAN de 2007 sobre Programación Funcional . Friburgo, Alemania. págs. 303–314 . Consultado el 1 de diciembre de 2007 . 
  5. Ghuloum, Abdulaziz ; Dybvig, R. Kent (30 de septiembre de 2007). "Tablas hash Eq amigables con la generación" (PDF) . Actas del Taller de 2007 sobre Scheme y Programación Funcional . Friburgo, Alemania. págs. 27–36 . Consultado el 1 de diciembre de 2007 . 
  • Sitio web oficial en Wayback Machine (archivado el 6 de junio de 2009)
  • Sitio de desarrollo del esquema Ikarus
  • Sitio web de desarrollo de la biblioteca R6RS y del sistema de casos sintácticos.
  • Guía del usuario del esquema Ikarus
  • El estándar R6RS
  • Todo el plan - Ikarus: El nuevo plan del barrio