S es un lenguaje de programación estadística desarrollado principalmente por John Chambers y (en versiones anteriores) Rick Becker y Allan Wilks de Bell Laboratories . El objetivo del lenguaje, como lo expresa John Chambers, es "convertir las ideas en software, de forma rápida y fiel". [1]
Paradigma | multi-paradigma : imperativo , orientado a objetos |
---|---|
Desarrollador | Rick Becker, Allan Wilks y John Chambers |
Apareció por primera vez | 1976 |
Disciplina de mecanografía | dinámico , fuerte |
Licencia | depende de la implementación |
Sitio web | ect.bell-labs.com/sl/S/ en Wayback Machine (archivado el 14 de octubre de 2018) |
Implementaciones importantes | |
R , S-PLUS | |
Influenciado por | |
C , APL , PPL , Fortran |
La implementación moderna de S is R , una parte del proyecto de software libre GNU . S-PLUS , un producto comercial, fue vendido anteriormente por TIBCO Software . [ cita requerida ]
Historia
"Viejo S"
S es uno de los varios lenguajes de computación estadística que se diseñaron en Bell Laboratories y se formó por primera vez entre 1975 y 1976. [2] Hasta ese momento, gran parte de la computación estadística se realizaba llamando directamente a las subrutinas de Fortran ; sin embargo, S fue diseñado para ofrecer un enfoque alternativo y más interactivo. Las primeras decisiones de diseño que se mantienen incluso en la actualidad incluyen dispositivos gráficos interactivos (impresoras y terminales de caracteres en ese momento) y proporcionar documentación de fácil acceso para las funciones.
La primera versión funcional de S se construyó en 1976 y funcionaba con el sistema operativo GCOS . En este momento, S no tenía nombre y las sugerencias incluían ISCS (SCS interactivo) , SCS (Sistema de cómputo estadístico) y SAS (Sistema de análisis estadístico) (que ya se tomó: consulte Sistema SAS ). Se eligió el nombre 'S' (usado con comillas simples hasta 1979), ya que era una letra común en las sugerencias y consistente con otros lenguajes de programación diseñados desde la misma institución en ese momento (es decir, el lenguaje de programación C ). [2]
Cuando UNIX / 32V se trasladó al (entonces nuevo) DEC VAX de 32 bits , la computación en la plataforma Unix se volvió viable para S. A finales de 1979, S se trasladó de GCOS a UNIX, que se convertiría en la nueva plataforma principal.
En 1980, la primera versión de S se distribuyó fuera de Bell Laboratories y en 1981 se pusieron a disposición versiones fuente. [2] En 1984, el equipo de investigación de Bell Laboratories publicó dos libros: S: An Interactive Environment for Data Analysis and Graphics [3] (Libro marrón de 1984) y Extending the S System . [4] Además, en 1984, el código fuente de S obtuvo la licencia a través de AT&T Software Sales para fines educativos y comerciales.
"Noticias"
En 1988, se realizaron muchos cambios en S y en la sintaxis del lenguaje. El Nuevo Lenguaje S [5] (Libro Azul de 1988) se publicó para introducir las nuevas características, como la transición de macros a funciones y cómo las funciones se pueden pasar a otras funciones (como apply
). Muchos otros cambios en el lenguaje S fueron para extender el concepto de "objetos" y hacer que la sintaxis fuera más consistente (y estricta). Sin embargo, muchos usuarios encontraron difícil la transición a New S , ya que sus macros debían ser reescritas. Se establecieron muchos otros cambios en S, como el uso de dispositivos gráficos X11 y PostScript , la reescritura de muchas funciones internas de Fortran a C, y el uso de (solo) aritmética de doble precisión . El nuevo S lenguaje es muy similar a la utilizada en las versiones modernas de S-PLUS y R .
En 1991, se publicó Statistical Models in S [6] (Libro Blanco de 1991), que introdujo el uso de notación de fórmula [7] (que usa el operador ' ~ '), objetos de marco de datos y modificaciones al uso de object métodos y clases .
S4
La última versión del estándar S es S4, lanzada en 1998. [8] Proporciona funciones avanzadas orientadas a objetos. Las clases S4 difieren notablemente de las clases S3; S4 define formalmente la representación y la herencia de cada clase, y tiene envío múltiple : la función genérica puede enviarse a un método basado en la clase de cualquier número de argumentos, no solo uno. [9]
Referencias
- ^ Cámaras, John M (1998). Programación con datos: Una guía para el S Idioma . Saltador. ISBN 978-0-387-98503-9.
- ^ a b c Becker, Richard A., A Brief History of S , Murray Hill, Nueva Jersey: AT&T Bell Laboratories, archivado desde el original (PS) el 23 de julio de 2015 , consultado el 23 de julio de 2015
- ^ Becker, RA; Chambers, JM (1984). S: Un entorno interactivo para análisis de datos y gráficos . Pacific Grove, CA, EE.UU .: Wadsworth & Brooks / Cole. ISBN 0-534-03313-X.
- ^ Becker, RA; Chambers, JM (1985). Ampliación del S System . Pacific Grove, CA, EE.UU .: Wadsworth & Brooks / Cole. ISBN 0-534-05016-6.
- ^ Becker, RA; Chambers, JM; Wilks, AR (1988). El nuevo lenguaje S: un entorno de programación para análisis de datos y gráficos . Pacific Grove, CA, EE.UU .: Wadsworth & Brooks / Cole. ISBN 0-534-09192-X.
- ^ Chambers, JM; Hastie, TJ (1991). Modelos estadísticos en S . Pacific Grove, CA, EE.UU .: Wadsworth & Brooks / Cole. pag. 624. ISBN 0-412-05291-1.
- ^ Wilkinsons, GN; Rogers, CE (1973). "Descripción simbólica de modelos factoriales para análisis de varianza". Estadísticas aplicadas . 22 (3): 392–399. doi : 10.2307 / 2346786 . JSTOR 2346786 .
- ^ Chambers, John (1 de enero de 2001). "El Sistema S" . Bell Labs. Archivado desde el original el 14 de octubre de 2018.
- ^ Wickham, Hadley (2019). "S4". Avanzado R. adv-r.had.co.nz . ISBN 9781466586963. Consultado el 18 de febrero de 2020 .
enlaces externos
- Evolution of the S Language , de John M. Chambers, analiza las nuevas funciones de la versión 4 de S (en formato PostScript )