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 bytecode . [1] Tiene una interfaz de funciones foráneas para llamar funciones desde el lenguaje C [2] y viene con una biblioteca para expresiones regulares (regex), [3] y una interfaz para Portable Operating System Interface ( POSIX ). [4] Es compatible con la biblioteca portátil Scheme SLIB, y es la base para Scheme shell Scsh . [1] Se ha utilizado en la investigación académica. [5] Es un software gratuito y de código abierto publicado bajo una licencia BSD .

Se llama "Esquema 48" porque la primera versión fue escrita en 48 horas en agosto de 1986. [6] Los autores ahora [ ¿cuándo? ] dicen que está destinado a ser entendido en 48 horas. [ cita requerida ]

Scheme 48 usa una máquina virtual para interpretar el bytecode , 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 tipificado estáticamente con la eficiencia y el acceso de máquina de bajo nivel de C, al tiempo que conserva muchas de las características deseables de Scheme.

El esquema previo fue bastante interesante. Kelsey también publicó un artículo sobre eso, creo. Era Scheme en el sentido de que podía cargarlo en un sistema Scheme y ejecutar el código. Pero era restrictivo: requería que escribiera de una manera que permitiera la inferencia completa de tipos estáticos de Hindley-Milner, y todos los procedimientos de orden superior se sustituyeron en versión beta en el momento de la compilación, lo que significa que podría *directamente* traducir un programa preesquemático a " código C natural" con eficiencia de nivel C [ sic]. Es decir, podría ver 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 interactivo de Scheme de su elección, antes de activar un interruptor y traducir a código C, porque prescheme era solo un esquema restringido. El intérprete de código de bytes de Scheme 48 se escribió en prescheme. Prescheme de alguna manera 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 prescheme