World Library  
Flag as Inappropriate
Email this Article

S (programming language)

Article Id: WHEBN0000919313
Reproduction Date:

Title: S (programming language)  
Author: World Heritage Encyclopedia
Language: English
Subject: R (programming language), List of programming languages by type, APL (programming language), Bell Labs, Scheme (programming language)
Collection: Statistical Programming Languages
Publisher: World Heritage Encyclopedia

S (programming language)

Paradigm(s) multi-paradigm: imperative, object oriented
Developer Rick Becker, Allan Wilks, John Chambers
Appeared in 1976
Typing discipline dynamic, strong
Major implementations R, S-PLUS
Influenced by C, APL, PPL, Fortran
License depends from implementation

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, part of the GNU free software project, and S-PLUS.


  • History 1
    • "Old S" 1.1
    • "New S" 1.2
    • S4 1.3
  • References 2
  • External links 3


"Old S"

S is one of several statistical computing languages that were designed at Bell Laboratories, and first took form between 1975–1976.[1] 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. 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.[1] In 1984 two books were published by the research team at Bell Laboratories: S: An Interactive Environment for Data Analysis and Graphics[2] (1984 Brown Book) and Extending the S System.[3] 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[4] (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 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[5] (1991 White Book) was published, which introduced the use of formula-notation[6] (which use the '~' operator), data frame objects, and modifications to the use of object methods and classes.


Version 4 of S, often abbreviated S4, provides advanced object-oriented features. S4 classes differ markedly from S3 classes.


  1. ^ a b Becker, Richard A., A Brief History of S (PS), Murray Hill, New Jersey: AT&T Bell Laboratories, retrieved 2014-08-18 
  2. ^ Becker, R.A.; Chambers, J.M. (1984). S: An Interactive Environment for Data Analysis and Graphics. Pacific Grove, CA, USA: Wadsworth & Brooks/Cole.  
  3. ^ Becker, R.A.; Chambers, J.M. (1985). Extending the S System. Pacific Grove, CA, USA: Wadsworth & Brooks/Cole.  
  4. ^ Becker, R.A.; Chambers, J.M.; Wilks, A.R. (1988). The New S Language: A Programming Environment for Data Analysis and Graphics. Pacific Grove, CA, USA: Wadsworth & Brooks/Cole.  
  5. ^ Chambers, J.M.; Hastie, T.J. (1991). Statistical Models in S. Pacific Grove, CA, USA: Wadsworth & Brooks/Cole. p. 624.  
  6. ^ Wilkinsons, G.N.; Rogers, C.E. (1973). "Symbolic description of factorial models for analysis of variance". Applied Statistics 22 (3): 392–399.  

External links

  • Evolution of the S Language, by John M. Chambers, discusses the new features in Version 4 of S (in PostScript format)
  • Stages in the Evolution of S, by John M. Chambers
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.