S (programming language)

S (programming language)

infobox programming language
name = S

paradigm =
year = 1975–1976
designer =
developer = Rick Becker, Allan Wilks, John Chambers
latest_release_version =
latest_release_date =
typing =
implementations = R, S-PLUS
dialects =
influenced_by =
influenced =
operating_system =
license =
website =

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".

There are two modern implementations of S; a free implementation, R, and a commercial implementation, Insightful's S-PLUS. Version 4 of S, often abbreviated S4, provides advanced object-oriented features. S4 classes differ markedly from S3 classes.

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 this date, 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 to 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" [cite book |last=Becker |first=R.A. |coauthors=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=053403313X ] (1984 Brown Book) and "Extending the S System" [cite book |last=Becker |first=R.A. |coauthors=Chambers, J.M. |title=Extending the S System |year=1985 |publisher=Wadsworth & Brooks/Cole |location=Pacific Grove, CA, USA |isbn=0534050166 ] . 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" [cite book |last=Becker |first=R.A. |authorlink= |coauthors= Chambers, J.M., and 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=053409192X ] (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 function from Fortran to C, and the use of double precision (only) arithmetic. The "New S" language is very similar to that used in modern version of S-PLUS and R.

In 1991, "Statistical Models in S" [cite book |last=Chambers |first=J.M. |coauthors=Hastie, T.J. |title=Statistical Models in S |year=1991 |publisher=Wadsworth & Brooks/Cole |location=Pacific Grove, CA, USA |isbn=0412052911 |pages=pp. 624] (1991 White Book) was published, which introduced the use of formula-notation [cite journal |last=Wilkinsons |first=G.N. |coauthors=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 |accessdate=2007-02-20 |doi=10.2307/2346786 ] (which use the '~' operator), data frame objects, and modifications to the use of object methods and classes.

References

ee also

* The R programming language

External links

* [http://www.r-project.org/ The R programming language] , - Open Source implementation of S
* [http://cm.bell-labs.com/stat/doc/94.11.ps A Brief History of S] , by Richard A. Becker (in PostScript format)
* [http://cm.bell-labs.com/stat/doc/96.7.ps Evolution of the S Language] , by John M. Chambers, discusses the new features in Version 4 of S (in PostScript format)
* [http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html Stages in the Evolution of S] , by John M. Chambers


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Programming language — lists Alphabetical Categorical Chronological Generational 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… …   Wikipedia

  • Programming language theory — (commonly known as PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and programming language features. It is a multi disciplinary field, both… …   Wikipedia

  • Programming Language Design and Implementation — (PLDI) is one of the ACM SIGPLAN s most important conferences. The precursor of PLDI was the Symposium on Compiler Optimization, held July 27–28, 1970 at the University of Illinois at Urbana Champaign and chaired by Robert S. Northcote. That… …   Wikipedia

  • Programming Language for Business — or PL/B is a business oriented programming language originally called DATABUS and designed by Datapoint in the early 1970s as an alternative to COBOL because its 8 bit computers could not fit COBOL into their limited memory, and because COBOL did …   Wikipedia

  • programming language — ➔ language * * * programming language UK US noun [C] ► COMPUTER LANGUAGE(Cf. ↑computer language) …   Financial and business terms

  • programming language — Language Lan guage, n. [OE. langage, F. langage, fr. L. lingua the tongue, hence speech, language; akin to E. tongue. See {Tongue}, cf. {Lingual}.] [1913 Webster] 1. Any means of conveying or communicating ideas; specifically, human speech; the… …   The Collaborative International Dictionary of English

  • Programming Language One — Programming Language One, oft als PL/I (auch PL/1, PL1 oder PLI) abgekürzt ist eine Programmiersprache, die in den 1960er Jahren von IBM entwickelt wurde. Die Bezeichnung PL/1 ist vor allem in Deutschland gebräuchlich. Ursprünglich wurde PL/I… …   Deutsch Wikipedia

  • Programming Language 1 — noun A computer programming language which combines the best qualities of commercial and scientific oriented languages (abbrev PL/1) • • • Main Entry: ↑programme …   Useful english dictionary

  • Programming Language —   [engl.], Programmiersprache …   Universal-Lexikon

  • Programming language specification — A programming language specification is an artifact that defines a programming language so that users and implementors can agree on what programs in that language mean.A programming language specification can take several forms, including the… …   Wikipedia

  • programming language — noun (computer science) a language designed for programming computers • Syn: ↑programing language • Topics: ↑computer science, ↑computing • Hypernyms: ↑artificial language …   Useful english dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”