Scheme 48 es un lenguaje de programación , un dialecto del lenguaje Scheme , una implementación que utiliza un intérprete que emite bytecode . [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 Portable Operating System Interface ( POSIX ). [5] Está soportado por la biblioteca portátil Scheme SLIB , y es la base para el shell Scheme Scsh . [2] Se ha utilizado en investigación académica. [6] Es un software libre 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. [7] Los autores ahora [ ¿cuándo? ] dicen que está destinado a ser entendido en 48 horas. [ cita requerida ]
Scheme 48 utiliza una máquina virtual para interpretar el bytecode , que está escrito en un dialecto restringido de Scheme llamado PreScheme, que se puede traducir a C y compilar en un binario nativo. PreScheme, o Pre-Scheme, es un dialecto de Scheme con tipado estático que ofrece la eficiencia y el acceso a máquina de bajo nivel de C, pero conserva muchas de las características deseables de Scheme.
Pre-scheme era bastante interesante. Kelsey también publicó un artículo al respecto, creo. Era Scheme en el sentido de que se podía cargar en un sistema Scheme y ejecutar el código. Pero era restrictivo: requería que escribieras de una manera que permitiera una inferencia de tipo estática completa de Hindley-Milner, y todos los procedimientos de orden superior se sustituían en versión beta en tiempo de compilación, lo que significa que podías traducir *directamente* un programa prescheme a código C "natural" con eficiencia de nivel C [ sic ]. Es decir, podías ver prescheme como una alternativa realmente agradable a C para código de bajo nivel. Y podías depurar tus programas prescheme en el entorno de desarrollo interactivo de Scheme que eligieras, antes de pulsar un interruptor y traducir a código C, porque prescheme era solo un Scheme restringido. El intérprete de código de 48 bytes de Scheme estaba escrito en prescheme. 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 Prescheme
— Olin Shivers, "Olin Shivers: Historia de T" [8]