Diferencia entre revisiones de «Scheme»

Contenido eliminado Contenido añadido
Xqbot (discusión · contribs.)
m Bot: Reemplace la etiqueta obsoleta <source> y el parámetro "enclose"; cambios superficiales
Sin resumen de edición
Etiquetas: Revertido Edición desde móvil Edición vía web móvil
Línea 1:
{{referencias|t=20161213062110}}
 
{{Ficha de lenguaje de programación
|nombre = Scheme
|logo = Lambda lc.svg{{referencias|t=20161213062110}}
 
{{Ficha de lenguaje de programación
|nombre = Scheme
|logo = Lambda lc.svg
|tamaño_logo = 100px
|paradigma = multi-paradigma
|año = [[1975]]
|diseñador = Guy L. Steele y Gerald Jay Sussman
|tipo_dato = Fuerte, dinámico
|implementaciones = Scheme, Scheme 48, Chicken, Gambit, FLUENT, [[GNU Guile|Guile]], Bigloo, Chez Scheme, STk, STklos, Larceny, SCM
|dialectos = T
|influido_por = Lisp}}
 
'''''Scheme''''' es un [[lenguaje de programación]] [[lenguaje de programación funcional|funcional]] (si bien ''impuro'' pues sus estructuras de datos no son inmutables) y un [[dialecto (programación)|dialecto]] de [[Lisp]]. Fue desarrollado por [[Guy L. Steele]] y [[Gerald Jay Sussman]] en la [[años 1970|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 [[minimalismo|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 [[Recursión (ciencias de computación)|llamadas recursivas]].
 
Scheme fue el primer dialecto de Lisp que usó [[ámbito (programación)|ámbito estático]], también conocido como ámbito léxico, (en lugar de [[ámbito (programación)|dinámico]]) de forma exclusiva. También fue uno de los primeros lenguajes de programación con [[continuación|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 ([[Recolector de basura|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 [[:en:Planner_%28programming_language%29|Planner]] y [[Conniver]]. Su nombre actual es debido a que sus autores usaban el [[Incompatible Timesharing System|sistema operativo ITS]], que limitaba la longitud de los nombres de fichero a 6 caracteres.
|tamaño_logo = 100px
|paradigma = multi-paradigma