S programming language
Encyclopedia
S is a statistical programming language
developed primarily by John Chambers
and (in earlier versions) Rick Becker and Allan Wilks of Bell Laboratories
. The aim of the language, as expressed by John Chambers, is "to turn ideas into software, quickly and faithfully."
The two modern implementations of S are R
and S-PLUS
.
subroutines; however, S was designed to offer an alternate and more interactive approach. Early design decisions that hold even today include interactive graphics devices (printers and character terminals at the time), and providing easily accessible documentation for the functions.
The first working version of S was built in 1976, and operated on the GCOS
operating system. At this time, S was unnamed, and suggestions included Interactive SCS (ISCS), Statistical Computing System, and Statistical Analysis System (which was already taken: see SAS System
). The name 'S' (used with single quotation marks, until 1979) was chosen, as it has the common letter used in statistical computing, and is consistent with other programming languages designed from the same institution at the time (namely the C programming language
).
When UNIX/32V
was ported to the (then new) 32-bit DEC
VAX
, computing on the Unix
platform became feasible for S. In late 1979, S was ported from GCOS to UNIX, which would become the new primary platform.
In 1980, the first version of S distributed outside of Bell Laboratories, and in 1981, source version were made available. In 1984 two books were published by the research team at Bell Laboratories: S: An Interactive Environment for Data Analysis and Graphics (1984 Brown Book) and Extending the S System. Also, in 1984 the source code for S became licensed through AT&T Software Sales for education and commercial purposes.
and PostScript
graphics devices, rewriting many internal functions from Fortran to C, and the use of double precision
(only) arithmetic. The New S language is very similar to that used in modern versions of S-PLUS
and R
.
In 1991, Statistical Models in S (1991 White Book) was published, which introduced the use of formula-notation (which use the '~' operator), data frame objects, and modifications to the use of object methods
and classes
.
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
developed primarily by John Chambers
John Chambers (programmer)
John M. Chambers is the creator of the S programming language, and core member of the R programming language project. He was awarded the 1998 ACM Software System Award for developing S...
and (in earlier versions) Rick Becker and Allan Wilks of Bell Laboratories
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
. The aim of the language, as expressed by John Chambers, is "to turn ideas into software, quickly and faithfully."
The two modern implementations of S are R
R (programming language)
R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....
and S-PLUS
S-PLUS
S-PLUS is a commercial implementation of the S programming language sold by TIBCO Software Inc..It features object-oriented programming capabilities and advanced analytical algorithms.-Historical timeline:...
.
"Old S"
S is one of several statistical computing languages that were designed at Bell Laboratories, and first took form between 1975–1976. Up to that time, much of the statistical computing was done by directly calling FortranFortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
subroutines; however, S was designed to offer an alternate and more interactive approach. Early design decisions that hold even today include interactive graphics devices (printers and character terminals at the time), and providing easily accessible documentation for the functions.
The first working version of S was built in 1976, and operated on the GCOS
General Comprehensive Operating System
General Comprehensive Operating System is a family of operating systems oriented toward mainframe computers.The original version of GCOS was developed by General Electric from 1962; originally called GECOS...
operating system. At this time, S was unnamed, and suggestions included Interactive SCS (ISCS), Statistical Computing System, and Statistical Analysis System (which was already taken: see SAS System
SAS System
SAS is an integrated system of software products provided by SAS Institute Inc. that enables programmers to perform:* retrieval, management, and mining* report writing and graphics* statistical analysis...
). The name 'S' (used with single quotation marks, until 1979) was chosen, as it has the common letter used in statistical computing, and is consistent with other programming languages designed from the same institution at the time (namely the C programming language
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
).
When UNIX/32V
UNIX/32V
UNIX/32V was an early version of the Unix operating system from Bell Laboratories, released in June 1979. 32V was a direct port of the PDP-11 Seventh Edition Unix to the DEC VAX architecture....
was ported to the (then new) 32-bit DEC
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...
VAX
VAX
VAX was an instruction set architecture developed by Digital Equipment Corporation in the mid-1970s. A 32-bit complex instruction set computer ISA, it was designed to extend or replace DEC's various Programmed Data Processor ISAs...
, computing on the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
platform became feasible for S. In late 1979, S was ported from GCOS to UNIX, which would become the new primary platform.
In 1980, the first version of S distributed outside of Bell Laboratories, and in 1981, source version were made available. In 1984 two books were published by the research team at Bell Laboratories: S: An Interactive Environment for Data Analysis and Graphics (1984 Brown Book) and Extending the S System. Also, in 1984 the source code for S became licensed through AT&T Software Sales for education and commercial purposes.
"New S"
By 1988, many changes were made to S and the syntax of the language. The New S Language (1988 Blue Book) was published to introduce the new features, such as the transition from macros to functions and how functions can be passed to other functions (such asapply
). Many other changes to the S language were to extend the concept of "objects", and to make the syntax more consistent (and strict). However, many users found the transition to New S difficult, since their macros needed to be rewritten. Many other changes to S took hold, such as the use of X11X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
and PostScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...
graphics devices, rewriting many internal functions from Fortran to C, and the use of double precision
Double precision
In computing, double precision is a computer number format that occupies two adjacent storage locations in computer memory. A double-precision number, sometimes simply called a double, may be defined to be an integer, fixed point, or floating point .Modern computers with 32-bit storage locations...
(only) arithmetic. The New S language is very similar to that used in modern versions of S-PLUS
S-PLUS
S-PLUS is a commercial implementation of the S programming language sold by TIBCO Software Inc..It features object-oriented programming capabilities and advanced analytical algorithms.-Historical timeline:...
and R
R (programming language)
R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....
.
In 1991, Statistical Models in S (1991 White Book) was published, which introduced the use of formula-notation (which use the '~' operator), data frame objects, and modifications to the use of object methods
Method (computer science)
In object-oriented programming, a method is a subroutine associated with a class. Methods define the behavior to be exhibited by instances of the associated class at program run time...
and classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...
.
S4
Version 4 of S, often abbreviated S4, provides advanced object-oriented features. S4 classes differ markedly from S3 classes.External links
- A Brief History of S, by Richard A. Becker (in PostScriptPostScriptPostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...
format) - Evolution of the S Language, by John M. Chambers, discusses the new features in Version 4 of S (in PostScriptPostScriptPostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...
format) - Stages in the Evolution of S, by John M. Chambers