S (programming Language)
   HOME

TheInfoList



OR:

S is a statistical
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
developed primarily by John Chambers and (in earlier versions) Rick Becker and Allan Wilks of
Bell Laboratories Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984), then AT&T Bell Laboratories (1984–1996) and Bell Labs Innovations (1996–2007), is an American industrial research and scientific development company owned by mult ...
. The aim of the language, as expressed by John Chambers, is "to turn ideas into software, quickly and faithfully". The modern implementation of S is R, a part of the
GNU GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
free software project.
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. Due to the increasing popularity of the open source S succ ...
, a commercial product, was formerly sold by
TIBCO Software TIBCO Software Inc. is an American business intelligence software company founded in 1997 in Palo Alto, California. It has headquarters in Palo Alto, California, and offices in North America, Europe, Asia, the Middle East, Africa and South A ...
.


History


"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 Fortran subroutines; however, S was designed to offer an alternate and more interactive approach, motivated in part by
exploratory data analysis In statistics, exploratory data analysis (EDA) is an approach of analyzing data sets to summarize their main characteristics, often using statistical graphics and other data visualization methods. A statistical model can be used or not, but pri ...
advocated by John Tukey. 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 ''ISCS (Interactive SCS)'', ''SCS (Statistical Computing System)'', and ''SAS (Statistical Analysis System)'' (which was already taken: see
SAS System SAS (previously "Statistical Analysis System") is a statistical software suite developed by SAS Institute for data management, advanced analytics, multivariate analysis, business intelligence, criminal investigation, and predictive analytics. ...
). The name 'S' (used with single quotation marks until 1979) was chosen, as it was a common letter in the suggestions and consistent with other programming languages designed from the same institution at the time (namely the C programming language). When
UNIX/32V UNIX/32V is an early version of the Unix operating system from Bell Laboratories, released in June 1979. 32V was a direct port of the Seventh Edition Unix to the DEC VAX architecture. Overview Before 32V, Unix had primarily run on DEC PDP-11 ...
was ported to the (then new) 32-bit DEC
VAX VAX (an acronym for Virtual Address eXtension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The V ...
, computing on the
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
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 was distributed outside Bell Laboratories and in 1981 source versions 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 as apply). 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
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
and PostScript graphics devices, rewriting many internal functions from Fortran to C, and the use of
double precision Double-precision floating-point format (sometimes called FP64 or float64) is a floating-point number format, usually occupying 64 bits in computer memory; it represents a wide dynamic range of numeric values by using a floating radix point. Flo ...
(only) arithmetic. The ''New S'' language is very similar to that used in modern versions of
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. Due to the increasing popularity of the open source S succ ...
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 Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scien ...
and classes.


S4

The latest version of the S standard is S4, released in 1998. It provides advanced object-oriented features. S4 classes differ markedly from S3 classes; S4 formally defines the representation and inheritance for each class, and has
multiple dispatch Multiple dispatch or multimethods is a feature of some programming languages in which a function or method can be dynamically dispatched based on the run-time (dynamic) type or, in the more general case, some other attribute of more than one of ...
: the generic function can be dispatched to a method based on the class of any number of arguments, not just one.


References


External links


Evolution of the S Language
by John M. Chambers, discusses the new features in Version 4 of S (in PostScript format) {{DEFAULTSORT:S (Programming Language) Statistical programming languages Programming languages created in 1976