S (Programmiersprache)

Programmiersprache

S ist eine Programmiersprache für statistische Berechnungen und Grafiken, die ursprünglich von Richard A. Becker (Rick Becker), John M. Chambers und Allan R. Wilks an den Bell Laboratories (heute Teil von Alcatel-Lucent und somit Nokia) entwickelt wurde.

S
Paradigmen: imperativ, objektorientiert
Erscheinungsjahr: 1976
Designer: Richard A. Becker, John M. Chambers, Allan R. Wilks
Entwickler: Rick Becker
Aktuelle Version S4[1] (1998)
Typisierung: dynamisch, stark
Dialekte: R, S-PLUS
Beeinflusst von: Lisp, APL, awk, PPL, Scheme
Betriebssystem: Unixoide, MacOS, Windows
Lizenz: Abhängig von der Implementierung
ect.bell-labs.com/sl/S/

Heute sind die beiden S-Implementierungen R (Open Source) und S-PLUS verfügbar, die weitgehend, jedoch nicht vollständig, kompatibel sind. R wird im TIOBE-Index auf Platz 9[2] aufgeführt, S-PLUS taucht dagegen unter den 100 verbreitetsten Programmiersprachen nicht mehr auf.[3]

Geschichte

Bearbeiten

Ursprünge (bis 1976)

Bearbeiten

Zur Zeit der ersten Entwicklung von S gab es keine statistische Programmiersprache. Für statistische Berechnungen war es oft nötig, Fortran-Routinen direkt aufzurufen. Mit S sollten Prozesse, die in der interaktiven Arbeit von Statistikern mit Daten wiederkehren, wie die explorative Datenanalyse und die Erstellung passender Grafiken, schneller möglich und flexibel programmierbar sein. 1969 veröffentlichte John M. Chambers die Grundzüge einer statistischen Sprache.[4] Nach seinen Worten lag das Ziel von S darin, Ideen schnell und sinngetreu in Software umzuwandeln.

“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 ist eine Programmiersprache und Umgebung für alle Arten von Berechnungen unter Einbeziehung von Daten. Sie hat ein einfaches Ziel: Ideen schnell und sinngetreu in Software umzuwandeln.“

John M. Chambers[5]

S1 (1976–1980)

Bearbeiten

Die erste S-Implementierung (S1) auf Basis von Fortran wurde 1976 intern in den Bell Labs veröffentlicht. S hatte Schnittstellen zu Routinen der numerischen linearen Algebra, Zufallszahlen und ein paar Modellen. S lief dabei auf Honeywell-Großrechnern unter dem Betriebssystem GCOS. 1979 wurde die Sprache nach Unix portiert, was für Weiterentwicklungen einfacher war, zumal auch Unix in den Bell Labs seine Ursprünge hat. Grafiken wurden plattformunabhängig erstellt.

S2 (1980–1988)

Bearbeiten

1980 erschien die zweite Version von S (S2). Die Bell Labs gehörten während der Entwicklung von S zu AT&T, die sich in der Position eines regulierten Monopols befanden und Zugriff auf Entwicklungen der Bell Labs hatten. Sie vergaben erstmals Lizenzen für die Nutzung von S an Bildungseinrichtungen und für kommerzielle Zwecke.

S3 (1988–1998)

Bearbeiten

Durch die Einführung von S3 im Jahre 1988 wurden fundamentale Änderungen in S und seiner Syntax eingeführt, sodass die Sprache nicht mehr lediglich eine Schnittstelle mit Makros für existierende Routinen war, sondern diese als Funktionen darstellte. Neben Fortran wurde C zur Erstellung verwendet; beide Sprachen konnten zudem aufgerufen werden um den Funktionsumfang zu erweitern. Unter anderem erlaubte die neue Version die Formulierung statistischer Modelle. Der Data frame wurde als Klasse eingeführt um Datensätze zu speichern. Variablen und Funktionen werden als Objekte in der Arbeitsumgebung gespeichert. Im S3-Klassensystem gehören Methoden nicht zu Objekten oder Klassen, sondern zu Funktionen; sie entsprechen somit generischen Funktionen. Die generische Funktion entscheidet darüber, welche Methode aufgerufen wird. Es gibt keine formale Beschreibung einer Klasse.

Nach der Aufteilung von AT&T 1984 war es den Bell Labs möglich S zu verkaufen. Das Unternehmen Statistical Sciences entwickelte eine kommerzielle Implementierung von S mit erweiterten Funktionen und veröffentlichte 1988 S-PLUS. Einige Zeit später im Jahr 1993 wurde mit R als GNU-Projekt eine freie Version von S veröffentlicht. Die Mehrzahl der Programme, die für S-PLUS geschrieben wurden, sind unter R lauffähig und umgekehrt. Unterschiede bestehen etwa in der Implementierung komplexer Graphiken.

S4 (seit 1998)

Bearbeiten

S4 führte 1998 ein neues, erheblich erweitertes Objekt- und Klassenmodell als Erweiterung der S3-Klassen ein. Die Funktionsweise ist ähnlich, sodass Methoden zu Funktionen gehören. Klassen haben jedoch formale Definitionen, welche die Felder und Vererbungsstrukturen (Basisklasse) beschreiben. Eine S4-Klasse besteht aus drei Eigenschaften: der Name zur Identifizierung der Klasse, eine Liste der Felder um Namen der Felder und zugelassene Klassen zu definieren sowie eine Zeichenkette mit der Klasse, von der sie abgeleitet ist. Mit S4-Klassen ist eine mehrfache Vererbung möglich. Es gibt Hilfsfunktionen um Methoden und generische Funktionen zu definieren. Das S4-Klassensystem implementiert Multimethoden, sodass generische Funktionen Methoden auf Grundlage der Klassen mehrerer Argumente auswählen können. Mit dem At-Zeichen (@) können Felder von einem S4-Objekt extrahiert werden. Objekt und Methode werden im Funktionsaufruf durch einen Punkt getrennt. Benutzerdefiniert können neue Klassen erstellt oder bestehende umdefiniert werden. R übernahm die S4-Klassen.

2001 nannte sich Statistical Sciences in Insightful um und erwarb 2004 die Rechte an S für 2 Millionen US-Dollar. 2008 wurde Insightful für 25 Millionen US-Dollar an TIBCO verkauft und S-PLUS als Bestandteil von Spotfire Analytics aufgenommen.

Auszeichnungen

Bearbeiten

Die Association for Computing Machinery zeichnete 1998 John Chambers für die Entwicklung von S mit dem ACM Software System Award aus.

Siehe auch

Bearbeiten

Literatur

Bearbeiten
  • William N. Venables, Brian D. Ripley: Modern Applied Statistics with S. 4. Auflage. Springer, New York 2002, ISBN 0-387-95457-0 (Material). Statistische Analysen mit S
  • William N. Venables, Brian D. Ripley: S Programming. Springer, New York 2000, ISBN 0-387-98966-8 (Material). Programmierung mit 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). Beschreibung von S4
  • Phil Spector: An Introduction to S & S-PLUS. Duxbury Press, Belmont 1993, ISBN 978-0-534-19866-4 (Material).
  • John M. Chambers, Trevor J. Hastie: Statistical Models in S. Chapman & Hall/CRC, London 1992, ISBN 978-0-412-83040-2 (The white book). Statistische Modellierung sowie Klassen und Methoden mit 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). Beschreibung von 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). Vorstellung von S (S2)
Bearbeiten
  • CSAN, Comprehensive S-PLUS Archive Network

Einzelnachweise

Bearbeiten
  1. ect.bell-labs.com.
  2. index | TIOBE - The Software Quality Company. Abgerufen am 9. Januar 2021 (englisch).
  3. TIOBE Software: TIOBE Index for March 2016. In: TIOBE Software. TIOBE Software BV, archiviert vom Original (nicht mehr online verfügbar) am 26. Juli 2016; abgerufen am 23. März 2016 (englisch).
  4. John M. Chambers: A Statistical Data Language. In: Roy C. Milton, John A. Nelder (Hrsg.): Statistical Computation. Academic Press, New York 1969, S. 179–199.
  5. John M. Chambers: Programming with Data. A Guide to the S Language. Springer, New York 1998, ISBN 0-387-98503-4, S. V (Material).