S (programmeringsspråk)
Paradigm | multi-paradigm : imperativ , objektorienterad |
---|---|
Utvecklare | Rick Becker, Allan Wilks, John Chambers |
Dök först upp | 1976 |
Maskinskrivningsdisciplin | dynamisk , stark |
Licens | beror på genomförandet |
Hemsida | ect.bell-labs.com/sl/S/ på Wayback Machine (arkiverad 2018-10-14) |
Stora implementeringar | |
R , S-PLUS | |
Influerad av | |
C , APL , PPL , Fortran |
S är ett statistiskt programmeringsspråk utvecklat främst av John Chambers och (i tidigare versioner) Rick Becker och Allan Wilks från Bell Laboratories . Syftet med språket, som uttryckt av John Chambers, är "att förvandla idéer till mjukvara, snabbt och troget".
Den moderna implementeringen av S är R , en del av GNUs fria mjukvaruprojekt. S-PLUS , en kommersiell produkt, såldes tidigare av TIBCO Software . [ citat behövs ]
Historia
"Gammal S"
S är ett av flera statistiska beräkningsspråk som designades vid Bell Laboratories, och först tog form mellan 1975–1976. Fram till den tiden gjordes mycket av den statistiska beräkningen genom att direkt anropa Fortran -subrutiner; S utformades dock för att erbjuda ett alternativt och mer interaktivt tillvägagångssätt, delvis motiverat av utforskande dataanalys som förespråkades av John Tukey . Tidiga designbeslut som gäller även idag inkluderar interaktiva grafikenheter (skrivare och teckenterminaler vid den tiden), och tillhandahåller lättillgänglig dokumentation för funktionerna.
Den första fungerande versionen av S byggdes 1976 och kördes på GCOS- operativsystemet. Vid denna tidpunkt var S namnlös, och förslagen inkluderade ISCS (Interactive SCS) , SCS (Statistical Computing System) och SAS (Statistical Analysis System) (som redan togs: se SAS System ). Namnet 'S' (används med enstaka citattecken fram till 1979) valdes, eftersom det var en vanlig bokstav i förslagen och överensstämde med andra programmeringsspråk designade från samma institution vid den tiden (nämligen programmeringsspråket C ) .
När UNIX/32V portades till den (då nya) 32-bitars DEC VAX , blev datoranvändning på Unix -plattformen möjlig för S. I slutet av 1979 portades S från GCOS till UNIX, som skulle bli den nya primära plattformen.
1980 distribuerades den första versionen av S utanför Bell Laboratories och 1981 gjordes källversioner tillgängliga. 1984 publicerades två böcker av forskargruppen vid Bell Laboratories: S: An Interactive Environment for Data Analysis and Graphics (1984 Brown Book) och Extending the S System . 1984 blev källkoden för S licensierad genom AT&T Software Sales för utbildnings- och kommersiella ändamål.
"Nyheter"
År 1988 gjordes många ändringar i S och språkets syntax. The New S Language (1988 Blue Book) publicerades för att introducera de nya funktionerna, såsom övergången från makron till funktioner och hur funktioner kan överföras till andra funktioner (som applicera
). Många andra förändringar av S-språket var att utöka begreppet "objekt" och att göra syntaxen mer konsekvent (och strikt). Men många användare tyckte att övergången till New S var svår, eftersom deras makron behövde skrivas om. Många andra ändringar av S tog fäste, som användningen av X11 och PostScript -grafikenheter, omskrivning av många interna funktioner från Fortran till C, och användningen av dubbel precision (endast) aritmetik. Det nya S- språket är mycket likt det som används i moderna versioner av S-PLUS och R .
1991 publicerades Statistical Models in S (1991 White Book), som introducerade användningen av formelnotation (som använder ~ -operatorn
), dataramobjekt och modifieringar av användningen av objektmetoder och klasser .
S4
Den senaste versionen av S-standarden är S4, som släpptes 1998. Den har avancerade objektorienterade funktioner. S4-klasser skiljer sig markant från S3-klasser; S4 definierar formellt representationen och arvet för varje klass och har multipel sändning : den generiska funktionen kan skickas till en metod baserad på klassen av valfritt antal argument, inte bara ett.
externa länkar
- Evolution of the S Language , av John M. Chambers, diskuterar de nya funktionerna i version 4 av S (i PostScript- format)