Scheme (lenguaje de programación)


Scheme es un dialecto minimalista de la familia Lisp de lenguajes de programación . Scheme consta de un pequeño núcleo estándar con varias herramientas para la extensión del idioma. [1]

Scheme fue creado durante la década de 1970 en el MIT AI Lab y lanzado por sus desarrolladores, Guy L. Steele y Gerald Jay Sussman , a través de una serie de memorandos ahora conocidos como Lambda Papers . Fue el primer dialecto de Lisp en elegir el alcance léxico y el primero en requerir implementaciones para realizar la optimización de la llamada final , lo que brinda un soporte más sólido para la programación funcional y las técnicas asociadas, como los algoritmos recursivos. También fue uno de los primeros lenguajes de programación en admitir continuaciones de primera clase . Tuvo una influencia significativa en el esfuerzo que condujo al desarrollo de Common Lisp . [2]

El lenguaje Scheme está estandarizado en el funcionario IEEE estándar [3] y una de facto estándar llamado el Revisada n Informe sobre la Lengua esquema algorítmico (R n RS). El estándar más implementado es R5RS (1998). [4] El estándar más reciente, R7RS, [5] proporciona versiones "pequeñas" y "grandes" del lenguaje Scheme; el estándar de lenguaje "pequeño" fue ratificado en 2013. [6]Scheme tiene una base de usuarios diversa debido a su compacidad y elegancia, pero su filosofía minimalista también ha provocado una gran divergencia entre las implementaciones prácticas, tanto que el Comité Directivo de Scheme lo llama "el lenguaje de programación más intransitable del mundo" y "una familia de dialectos". en lugar de un solo idioma. [7]

Esquema comenzó en la década de 1970 como un intento de comprender Carl Hewitt 's modelo de actor , para lo cual Steele y Sussman escribieron una 'pequeña intérprete Lisp' usando Maclisp y luego 'mecanismos adicionales para la creación de los actores y el envío de mensajes'. [8] Scheme se llamó originalmente "Schemer", en la tradición de otros lenguajes derivados de Lisp como Planner o Conniver . El nombre actual resultó del uso por parte de los autores del sistema operativo ITS , que limitaba los nombres de archivo a dos componentes de un máximo de seis caracteres cada uno. Actualmente, "Schemer" se usa comúnmente para referirse a un programador de Scheme.

Un nuevo proceso de estandarización del lenguaje comenzó en el taller del Esquema de 2003, con el objetivo de producir un estándar R6RS en 2006. Este proceso rompió con el anterior enfoque de unanimidad R n RS.

R6RS [9] presenta un sistema de módulos estándar, lo que permite una división entre el lenguaje principal y las bibliotecas. Se publicaron varios borradores de la especificación R6RS, siendo la versión final R5.97RS. Una votación exitosa resultó en la ratificación de la nueva norma, anunciada el 28 de agosto de 2007. [9]