Scheme | ||
---|---|---|
? | ||
Información general | ||
Extensiones comunes | scm y ss | |
Paradigma | multi-paradigma | |
Apareció en | 1975 | |
Diseñado por | Guy L. Steele y Gerald Jay Sussman | |
Sistema de tipos | Fuerte, dinámico | |
Implementaciones | Scheme, Scheme 48, Chicken, Gambit, FLUENT, Guile, Bigloo, Chez Scheme, STk, STklos, Larceny, SCM | |
Dialectos | T | |
Influido por | Lisp | |
Scheme es un lenguaje de programación funcional (si bien impuro pues sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele.
La filosofía de Scheme es minimalista. Su objetivo no es acumular un gran número de funcionalidades, sino evitar las debilidades y restricciones que hacen necesaria su adición. Así, Scheme proporciona el mínimo número posible de nociones primitivas, construyendo todo lo demás a partir de un reducido número de abstracciones. Por ejemplo, el mecanismo principal para el control de flujo son las llamadas recursivas.
Scheme fue el primer dialecto de Lisp que usó ámbito estático, también conocido como ámbito léxico, (en lugar de dinámico) de forma exclusiva. También fue uno de los primeros lenguajes de programación con continuaciones explícitas, un mecanismo para guardar y usar el estado entero de un programa en un momento determinado. Scheme ofrece también gestión automática de memoria (recolección de basura).
Las listas son la estructura de datos básica del lenguaje, que también ofrece arrays entre sus tipos predefinidos. Debido a su especificación minimalista, no hay sintaxis explícita para crear registros o estructuras, o para programación orientada a objetos, pero muchas implementaciones ofrecen dichas funcionalidades.
Scheme se llamaba originalmente «Schemer», siguiendo la tradición de los lenguajes Planner y Conniver. Su nombre actual se debe a que sus autores usaban el sistema operativo ITS, que limitaba la longitud de los nombres de fichero a seis caracteres.