S (programming language)

from Wikipedia, the free encyclopedia
S.
Paradigms : imperative , object-oriented
Publishing year: 1976
Designer: Richard A. Becker, John M. Chambers , Allan R. Wilks
Developer: Rick Becker
Typing : dynamic , strong
Dialects: R , S-PLUS
Influenced by: Lisp , APL , awk , PPL , Scheme
Operating system : Unixoide , Mac OS , Microsoft Windows
License : Depending on the implementation
http://ect.bell-labs.com/sl/S/

S is a programming language for statistical calculations and graphics, which was originally developed by Richard A. Becker (Rick Becker), John M. Chambers and Allan R. Wilks at Bell Laboratories (now part of Alcatel-Lucent and thus Nokia ).

Today the two S implementations R ( Open Source ) and S-PLUS are available, which are largely, but not completely, compatible. R is listed in the TIOBE index in 10th place, S-PLUS, on the other hand, no longer appears among the 100 most popular programming languages.

history

Origins (until 1976)

When S was first developed, there was no statistical programming language. For statistical calculations it was often necessary to call Fortran routines directly. With S, processes that recur in the interactive work of statisticians with data, such as exploratory data analysis and the creation of suitable graphics, should be possible more quickly and flexibly programmable. In 1969, John M. Chambers published the Basics of a Statistical Language. In his words, the goal of S was to convert ideas quickly and accurately into software.

“S is a programming language and environment for all kinds of computing involving data. It has a simple goal: To turn ideas into software, quickly and faithfully. "

“S is a programming language and environment for all kinds of calculations involving data. It has a simple goal: to convert ideas into software quickly and accurately. "

- John M. Chambers

S1 (1976-1980)

The first S implementation (S1) based on Fortran was published internally in Bell Labs in 1976. S interfaced with numerical linear algebra routines , random numbers, and a few models. S ran it on Honeywell - mainframe computers under the operating system GCOS . In 1979 the language was ported to Unix , which was easier for further developments, especially since Unix also has its origins in the Bell Labs. Graphics were created independently of the platform.

S2 (1980–1988)

In 1980 the second version of S (S2) appeared. Bell Labs belonged to AT&T during the development of S , which were in the position of a regulated monopoly and had access to Bell Labs developments. For the first time they issued licenses for the use of S to educational institutions and for commercial purposes.

S3 (1988-1998)

The introduction of S3 in 1988 introduced fundamental changes in S and its syntax, so that the language was no longer just an interface with macros for existing routines, but represented them as functions. In addition to Fortran, C was used to create; Both languages ​​could also be called up to expand the range of functions. Among other things, the new version allowed the formulation of statistical models. The data frame was introduced as a class to store data sets. Variables and functions are saved as objects in the working environment. In the S3 class system, methods do not belong to objects or classes, but to functions; they therefore correspond to generic functions . The generic function decides which method is called. There is no formal description of a class.

After AT&T split up in 1984, Bell Labs was able to sell S. The company Statistical Sciences developed a commercial implementation of S with advanced features and published in 1988 S-PLUS. Some time later in 1993, a free version of S was released as the GNU project called R. The majority of the programs that were written for S-PLUS can be run under R and vice versa. There are differences, for example, in the implementation of complex graphics.

S4 (since 1998)

In 1998, S4 introduced a new, considerably expanded object and class model as an extension of the S3 classes. The way it works is similar, so methods are part of functions. However, classes have formal definitions that describe the fields and inheritance structures ( base class ). An S4 class consists of three properties: the name to identify the class, a list of fields to define names of the fields and permitted classes, and a character string with the class from which it is derived . Multiple inheritance is possible with S4 classes . There are auxiliary functions to define methods and generic functions. The S4 class system implements multi- methods so that generic functions can select methods based on the classes of multiple arguments. The at symbol ( @) can be used to extract fields from an S4 object. Object and method are separated by a period in the function call. New classes can be created or existing ones can be redefined. R took over the S4 classes.

In 2001, Statistical Sciences was renamed Insightful and acquired the rights to S for $ 2 million in 2004. In 2008, Insightful was sold to TIBCO for $ 25 million and S-PLUS was incorporated as part of Spotfire Analytics .

Awards

The Association for Computing Machinery recorded 1998 John Chambers for the development of S with the ACM Software System Award from.

See also

literature

  • William N. Venables, Brian D. Ripley: Modern Applied Statistics with S . 4th edition. Springer, New York 2002, ISBN 0-387-95457-0 ( material ). Statistical analysis with S
  • William N. Venables, Brian D. Ripley: S Programming . Springer, New York 2000, ISBN 0-387-98966-8 ( material ). Programming with S
  • John M. Chambers: Programming with Data . A Guide to the S Language . Springer, New York 1998, ISBN 0-387-98503-4 ( Material - The green book). Description of S4
  • Phil Spector: An Introduction to S & S-PLUS . Duxbury Press, Belmont 1993, ISBN 978-0-534-19866-4 ( materials ).
  • John M. Chambers, Trevor J. Hastie: Statistical Models in S . Chapman & Hall / CRC, London 1992, ISBN 978-0-412-83040-2 (The white book). Statistical modeling as well as classes and methods with S3
  • Richard A. Becker, John M. Chambers, Allan R. Wilks: The New S Language . Chapman & Hall / CRC, London 1988, ISBN 978-0-534-09192-7 (The blue book). Description of S3
  • Richard A. Becker, John M. Chambers: Extending the S System . Chapman & Hall / CRC, London 1985, ISBN 978-0-534-05016-0 .
  • Richard A. Becker, John M. Chambers: S: An Interactive Environment for Data Analysis and Graphics . Chapman & Hall / CRC, London 1984, ISBN 978-0-534-03313-2 (The brown book). Presentation of S (S2)

Web links

Individual evidence

  1. index | TIOBE - The Software Quality Company. Retrieved April 4, 2020 .
  2. ^ TIOBE Software: TIOBE Index for March 2016. In: TIOBE Software. TIOBE Software BV, accessed on March 23, 2016 (English).
  3. John M. Chambers: A Statistical Data Language . In: Roy C. Milton, John A. Nelder (Eds.): Statistical Computation . Academic Press, New York 1969, pp. 179-199 .
  4. ^ John M. Chambers: Programming with Data . A Guide to the S Language . Springer, New York 1998, ISBN 0-387-98503-4 , pp. V ( material ).