Введение
Язык статистического программирования S широко используется в академических исследованиях. Основная реализация S – S PLUS, коммерческий продукт, который ранее продавался компанией TIBCO Software. Современный R, являющийся частью проекта свободного программного обеспечения GNU, был разработан на основе S и может выполнять многие программы, написанные на S, хотя и не обеспечивает полной обратной совместимости.
S It is widely used by academic researchers. A major implementation of S is S PLUS, a commercial product that was formerly sold by TIBCO Software. The modern R, a part of the GNU free software project, was based on S and can run many S programs, although it is not fully backwards compatible.
"Старый С"
S — один из нескольких языков статистических вычислений, разработанных в Лабораториях Белла, и впервые оформившийся в период с 1975 по 1976 год. До этого времени значительная часть статистических вычислений выполнялась посредством непосредственного вызова подпрограмм Fortran; однако S был разработан, чтобы предложить альтернативный и более интерактивный подход, частично обусловленный исследовательским анализом данных, продвигаемым Джоном Тьюки. Важные решения, принятые на ранних этапах проектирования и актуальные до сих пор, включают интерактивные графические устройства (принтеры и символьные терминалы того времени) и предоставление легкодоступной документации для функций. Разработкой проекта руководили Джон Чемберс и Тревор Хэсти, в команду разработчиков входили Ричард Беккер, Аллан Уилкс, Джон Чемберс и Уильям Кливленд, все из которых в то время были сотрудниками AT&T. Среди разработчиков, внесших вклад в S, Чемберс общепризнанно считается наиболее значимым участником. Первая рабочая версия S была создана в 1976 году и работала под операционной системой GCOS. В то время у S не было названия, рассматривались варианты ISCS (Интерактивный SCS), SCS (Система статистических вычислений) и SAS (Система статистического анализа) (который уже был занят: см. SAS System). Название "S" (использовалось в одинарных кавычках до 1979 года) было выбрано, поскольку буква "S" часто встречалась в предложенных вариантах и соответствовала другим языкам программирования, разработанным тем же учреждением в то время (в частности, языку программирования C). Когда UNIX/32V был портирован на (тогда новый) 32-битный DEC VAX, вычисления на платформе Unix стали возможными для S. В конце 1979 года S2 был портирован с GCOS на UNIX, который стал новой основной платформой. В 1980 году первая версия S была распространена за пределы Лабораторий Белла, а в 1981 году стали доступны исходные коды. В 1984 году исследовательская группа Лабораторий Белла опубликовала две книги: S: Интерактивная среда для анализа данных и графики (1984 Brown Book) и Расширение системы S. Кроме того, в 1984 году исходный код S стал доступен по лицензии через AT&T Software Sales для образовательных и коммерческих целей.
"Новая S"
Первая версия S PLUS была выпущена компанией Statistical Sciences, Inc. в 1988 году. Позднее S PLUS была продана компании TIBCO Software. (1988 Blue Book) был опубликован для представления новых возможностей, таких как переход от макросов к функциям и способы передачи функций другим функциям (например, apply). Многие другие изменения в языке S были направлены на расширение концепции "объектов" и повышение согласованности (и строгости) синтаксиса. Однако многие пользователи посчитали переход к New S сложным, так как им пришлось переписывать свои макросы. В языке S закрепилось множество других изменений, таких как использование графических устройств X11 и PostScript, переписывание многих внутренних функций с Fortran на C и использование арифметики двойной точности (исключительно). Язык New S очень похож на тот, который используется в современных версиях S PLUS и R.
Графический пользовательский интерфейс S также был обновлен с добавлением интерактивных графических возможностей после интеграции с Axum. (1991 White Book) был опубликован и представил обозначение формул (использующее оператор ~), объекты data frame и изменения в использовании методов и классов объектов.
S4
Последняя версия стандарта S – S4, выпущенная в 1998 году. Она предоставляет расширенные объектно-ориентированные возможности. Классы S4 существенно отличаются от классов S3; S4 формально определяет структуру и наследование для каждого класса и поддерживает множественную диспетчеризацию: обобщённая функция может быть вызвана для метода в зависимости от класса любого числа аргументов, а не только одного.