stringtranslate.com

Esquema 48

Scheme 48 es un lenguaje de programación , un dialecto del lenguaje Scheme , una implementación que utiliza un intérprete que emite código de bytes . [2] Tiene una interfaz de función externa para llamar funciones desde el lenguaje C [3] y viene con una biblioteca para expresiones regulares (regex), [4] y una interfaz para la interfaz del sistema operativo portátil ( POSIX ). [5] Es compatible con la biblioteca portátil de Scheme SLIB y es la base del shell de Scheme Scsh . [2] Se ha utilizado en investigaciones académicas. [6] Es un software gratuito y de código abierto publicado bajo una licencia BSD .

Se llama "Esquema 48" porque la primera versión se escribió en 48 horas en agosto de 1986. [7] Los autores ahora [ ¿cuándo? ] dice que está previsto que se entienda en 48 horas. [ cita necesaria ]

Implementación

Scheme 48 utiliza una máquina virtual para interpretar el código de bytes , que está escrito en un dialecto restringido de Scheme llamado PreScheme, que puede traducirse a C y compilarse en un binario nativo. PreScheme, o Pre-Scheme, es un dialecto de Scheme de tipo estático con la eficiencia y el acceso a máquina de bajo nivel de C, al tiempo que conserva muchas de las características deseables de Scheme.

El plan previo fue bastante interesante. Creo que Kelsey también publicó un artículo sobre ello. Era Scheme en el sentido de que podías cargarlo en un sistema Scheme y ejecutar el código. Pero era restrictivo: requería que usted escribiera de una manera que permitiera la inferencia completa de tipos estáticos Hindley-Milner, y todos los procedimientos de orden superior eran sustituidos por beta en el momento de la compilación, lo que significaba que podía *directamente* traducir un programa preesquema a " Código C natural" con eficiencia de nivel C [ sic ]. Es decir, se podría considerar el prescheme como una alternativa realmente agradable a C para código de bajo nivel. Y podría depurar sus programas prescheme en el entorno de desarrollo de Scheme interactivo de su elección, antes de activar un interruptor y traducirlos al código C, porque el prescheme era simplemente un Scheme restringido. El intérprete de código de bytes del esquema 48 se escribió en preesquema. El prescheme en cierto modo murió: más allá del artículo académico que escribió, Kelsey nunca tuvo tiempo de documentarlo y convertirlo en una herramienta independiente que otras personas pudieran usar (el grupo de Ian Horswill en Northwestern es una excepción a esa afirmación: han usado el prescheme).

—  Olin Shivers, "Olin Shivers: Historia de T" [8]

Referencias

  1. ^ Reclamación de R5RS en el sitio web del proyecto
  2. ^ ab Kelsey, Richard; Rees, Jonathan. "Esquema 48". S48.org . Consultado el 5 de diciembre de 2018 .
  3. ^ Kelsey, Richard; Rees, Jonathan; Sperber, Mike (10 de enero de 2008). "Manual de referencia del esquema incompleto 48 para la versión 1.8: combinación del esquema 48 y C". S48.org . Consultado el 5 de diciembre de 2018 ., Capítulo 8 del manual para la versión 1.8.
  4. ^ Kelsey, Richard; Rees, Jonathan; Sperber, Mike (10 de enero de 2008). "Manual de referencia del esquema incompleto 48 para la versión 1.8: expresiones regulares". S48.org . Consultado el 5 de diciembre de 2018 ., Capítulo 5 en el manual para la versión 1.8.
  5. ^ Kelsey, Richard; Rees, Jonathan; Sperber, Mike (10 de enero de 2008). "Manual de referencia del esquema incompleto 48 para la versión 1.8: acceso a POSIX". S48.org . Consultado el 5 de diciembre de 2018 ., Capítulo 9 del manual para la versión 1.8.
  6. ^ Turno final para llamada/cc: implementación directa de turno y reinicio
  7. ^ Rees, Jonathan A. "Página 48 del esquema de JAR". Jonathan A. Rees . Mumble.net . Consultado el 5 de diciembre de 2018 .
  8. ^ Escalofríos, Olin. "Olin Shivers: Historia de T". PaulGraham.com . Consultado el 5 de diciembre de 2018 .

enlaces externos