Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
S (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==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]] advocated by [[John Tukey]].<ref name="Becker">{{Citation |last=Becker |first=Richard A. |title=A Brief History of S |url=http://www2.research.att.com/areas/stat/doc/94.11.ps |access-date=2015-07-23 |archive-url=https://web.archive.org/web/20150723044213/http://www2.research.att.com/areas/stat/doc/94.11.ps |archive-date=2015-07-23 |place=Murray Hill, New Jersey |publisher=AT&T Bell Laboratories |format=PS}}</ref> 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.{{citation needed|date=December 2023}} Development of the project was led by [[John Chambers (statistician)|John Chambers]] and [[Trevor Hastie]], and included developers Richard Becker, Allan Wilks, [[John Chambers (statistician)|John Chambers]], and [[William S. Cleveland|William Cleveland]],<ref>{{Cite book |last1=Berry |first1=Kenneth J. |url=https://books.google.com/books?id=BX3BBAAAQBAJ&dq=trevor+hastie+s+language&pg=PA207 |title=A Chronicle of Permutation Statistical Methods: 1920β2000, and Beyond |last2=Johnston |first2=Janis E. |last3=Jr |first3=Paul W. Mielke |date=2014-04-11 |publisher=Springer Science & Business Media |isbn=978-3-319-02744-9 |pages=207β208 |language=en}}</ref> all of whom were then employees of [[AT&T]].<ref>{{Cite book |url=https://books.google.com/books?id=8plKEAAAQBAJ&dq=s+plus+douglas+r+martin&pg=PA8088 |title=Encyclopedia of Statistical Sciences, Volume 12 |date=2005-12-16 |publisher=John Wiley & Sons |isbn=978-0-471-74406-1 |pages=8088 |language=en}}</ref> Out of the developers who contributed to S, Chambers is generally agreed to be the most significant contributor.<ref name=":2" /> Chambers received the Software System Award from the [[Association for Computing Machinery]] for his work on S.<ref>{{Cite book |last=Charpentier |first=Arthur |url=https://books.google.com/books?id=OvsYCwAAQBAJ&dq=trevor+hastie+s+language&pg=PA4 |title=Computational Actuarial Science with R |date=2014-08-26 |publisher=CRC Press |isbn=978-1-4987-5982-3 |pages=4 |language=en}}</ref> The first working version of S was built in 1976, and ran on the [[General Comprehensive Operating System|GCOS]] operating system. At this time, S was unnamed; naming suggestions included ''ISCS (Interactive SCS)'', ''SCS (Statistical Computing System)'', and ''SAS (Statistical Analysis System)'' (which was already taken: see [[SAS System]]). 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)|C programming language]]).<ref name="Becker" /> It stands for the word "statistics".<ref name=":1">{{Cite book |last1=Nicholls |first1=Andy |url=https://books.google.com/books?id=IPA0CwAAQBAJ&dq=s+plus+tibco&pg=PP31 |title=R in 24 Hours, Sams Teach Yourself |last2=Pugh |first2=Richard |last3=Gott |first3=Aimee |date=2015-12-16 |publisher=Sams Publishing |isbn=978-0-13-428880-2 |language=en}}</ref> When [[UNIX/32V]] was ported to the (then new) 32-bit [[Digital Equipment Corporation|DEC]] [[VAX]], computing on the [[Unix]] platform became feasible for S. In late 1979, S2 was ported from GCOS to UNIX, which would become the new primary platform.<ref name=":3">{{Cite book |last=Chambers |first=John |url=https://books.google.com/books?id=UXneuOIvhEAC&q=+s+&pg=PA477 |title=Software for Data Analysis: Programming with R |date=2008-06-14 |publisher=Springer |isbn=978-0-387-75936-4 |pages=477β478 |language=en}}</ref> In 1980 the first version of S was distributed outside Bell Laboratories and in 1981 source versions were made available.<ref name="Becker" /> S was distributed freely in academic circles, and became popular among academic statisticians.<ref>{{Cite book |last1=Hardin |first1=James W. |url=https://books.google.com/books?id=Ux7NBQAAQBAJ&dq=trevor+hastie+s+language&pg=PA12 |title=Generalized Estimating Equations |last2=Hilbe |first2=Joseph M. |date=2002-07-30 |publisher=CRC Press |isbn=978-1-4200-3528-5 |pages=12 |language=en}}</ref> The research team at Bell Laboratories published two books in 1984: ''S: An Interactive Environment for Data Analysis and Graphics''<ref>{{cite book |last=Becker |first=R.A. |author2=Chambers, J.M. |title=S: An Interactive Environment for Data Analysis and Graphics |year=1984 |publisher=Wadsworth & Brooks/Cole |location=Pacific Grove, CA, USA |isbn=0-534-03313-X |url-access=registration |url=https://archive.org/details/sinteractiveenvi00beck_0 }}</ref> (known as the 'Brown Book') and ''Extending the S System''.<ref>{{cite book |last=Becker |first=R.A. |author2=Chambers, J.M. |title=Extending the S System |year=1985 |publisher=Wadsworth & Brooks/Cole |location=Pacific Grove, CA, USA |isbn=0-534-05016-6 }}</ref> Also, in 1984 the source code for S became licensed through AT&T Software Sales for education and commercial purposes. ==="New S"=== The first version of [[S-PLUS]] was released by Statistical Sciences, Inc. in 1988. S-PLUS was later sold to [[TIBCO Software]].<ref name=":1" /> By this time, many changes were made to S and the syntax of the language with the release of S3.<ref name=":3" /> ''The New S Language''<ref>{{cite book |last=Becker |first=R.A. |author2=Chambers, J.M. |author3=Wilks, A.R. |title=The New S Language: A Programming Environment for Data Analysis and Graphics |year=1988 |publisher=Wadsworth & Brooks/Cole |location=Pacific Grove, CA, USA |isbn=0-534-09192-X }}</ref> (known as the '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 <code>apply</code>). 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 [[X Window System|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|S-PLUS]] and [[R (programming language)|R]]. The graphical user interface of S was also updated interactive graphical features after integration with [[Axum (programming language)|Axum]].<ref name=":1" /> ''Statistical Models in S''<ref>{{cite book |last=Chambers |first=J.M. |author2=Hastie, T.J. |title=Statistical Models in S |year=1991 |publisher=Wadsworth & Brooks/Cole |location=Pacific Grove, CA, USA |isbn=0-412-05291-1 |page=624}}</ref> (known as the 'White Book') was published in 1991, introducing Wilkinson-Rogers formula notation<ref>{{cite journal |last=Wilkinson |first=G.N. |author2=Rogers, C.E. |year=1973 |title=Symbolic description of factorial models for analysis of variance |journal=Applied Statistics |volume=22 |issue=3 |pages=392β399|doi=10.2307/2346786 |jstor=2346786 }}</ref> (using the <code>~</code> operator) for defining statistical models, data frame objects, and modifications to the use of object [[Method (computer science)|methods]] and [[Class (computer science)|classes]]. ===S4=== The latest version of the S standard is S4, released in 1998.<ref>{{cite web |title=The S System |last=Chambers |first=John |author-link=John Chambers (statistician) |date=January 1, 2001 |publisher=Bell Labs |url=http://ect.bell-labs.com/sl/S/ |archive-url=https://web.archive.org/web/20181014111802/http://ect.bell-labs.com/sl/S/ |archive-date=2018-10-14 }}</ref> 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]]: the generic function can be dispatched to a method based on the class of any number of arguments, not just one.<ref>{{Cite book |last=Wickham |first=Hadley |url=http://adv-r.had.co.nz/S4.html |title=Advanced R. |publisher=adv-r.had.co.nz |year=2019 |isbn=9781466586963 |section=S4 |access-date=2020-02-18}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)