# SAS (langage)

Le langage de commande de SAS, pour Statistical Analysis System, est un langage propriétaire de programmation de quatrième génération (L4G) édité par SAS Institute depuis 1976.
Depuis 2004, SAS en est à la version 9, ce qui correspond à une évolution majeure dans le logiciel car il intègre une nouvelle brique conceptuelle destinée à s'implanter dans le monde des logiciels d’informatique décisionnelle.
Il faut donc dissocier SAS Foundation qui représente le L4G seul, et SAS BI qui intègre des applicatifs spécifiques.

## Historique

Le développement de SAS a commencé en 1966, grâce à une subvention des NIH à huit universités américaines, dans le but d'analyser des données agricoles. L'université d'État de Caroline du Nord était à la tête de ce consortium. En 1972, les NIH se sont désengagés du projet, et l'entreprise SAS Institute, Inc a été fondée en 1976 dans le but de poursuivre le projet. Le code source de SAS comprenait alors 300 000 lignes de code sur cartes perforées, en PL/I, Fortran et assembleur. Le système a été complètement réécrit en C au milieu des années 1980, pour la version 6 de SAS.

## SAS Foundation (ou SAS V9)

Le logiciel SAS traditionnel se compose d'un ensemble de modules permettant de répondre aux besoins suivants par la programmation :
* création et gestion de bases de données ;
* traitements analytiques des bases de données ;
* création et diffusion de rapports de synthèse et de listing.
Le langage n'a fait que s'enrichir depuis sa création, tout en maintenant la compatibilité ascendante. Les programmes, même anciens, s'exécutent donc toujours de la même façon.
Les modules Foundation, livrés obligatoirement lors de la location, sont les suivants :
* Base SAS ;
* SAS Entreprise Guide (interface Windows permettant d'utiliser des « assistants » plutôt que la saisie de code).
Ainsi qu'une dizaine de modules optionnels selon les besoins.
Le langage SAS est basé sur trois parties :
* les étapes DATA. Elles permettent de répondre aux besoins correspondant à la création et à la gestion de tables de données ;
* une étape crée ou modifie une table d'observations. En colonne se trouvent le plus souvent un identifiant et des indicateurs et en lignes, les sujets observés ;
* les procédures ont chacune leur objectif : trier une table, compter les lignes ou synthétiser les indicateurs, etc.
Certaines procédures permettent d'écrire dans un langage spécialisé : SQL ou IML (langage matriciel propre à SAS, assez proche de MATLAB).
Le langage macro est un langage permettant d'automatiser les traitements.
SAS est disponible sous Microsoft Windows, Linux, Unix (HP-UX, AIX, Solaris) et z/OS.

## SAS BI (ou SAS 9)

L'offre de la SAS 9 permet à SAS de fournir des applicatifs ETL et de reporting web. Dans tous les cas, l'applicatif consiste en une interface graphique (atelier).
SAS Data Integration Studio est une offre sur la brique ETL de la chaîne décisionnelle. L'atelier permet de concevoir un ensemble de tâches pour la création d'un système d'information.
SAS Web Report Studio permet de concevoir un ensemble de reporting accessible par le Web.

## Versions gratuites

SAS est disponible gratuitement, à usage éducatif (à comprendre dans un sens assez large : pour les étudiants et enseignants, mais aussi plus généralement pour toute personne désireuse d'apprendre SAS). Cette version gratuite est accessible de deux façons différentes :
* SAS University Edition s'installe sur l'ordinateur de l'utilisateur, mais dans une machine virtuelle (VirtualBox ou VMware). On accède à SAS en mode client/serveur, via un navigateur web. Le nombre de modules disponibles est limité à SAS Base, SAS/STAT, SAS/IML, SAS/ACCESS et une partie de SAS/ETS.
* SAS OnDemand for Academics ne nécessite aucune installation. Il se trouve sur un serveur distant, et on y accède de la même façon via un navigateur web. Le nombre de modules disponibles est nettement plus important, mais l'espace disque est limité à 5 Go.

## Autres implémentations

World Programming System, aussi connu sous le nom WPS, est un logiciel développé par l'entreprise World Programming Limited permettant aux utilisateurs de créer, modifier et exécuter des programmes écrits dans le langage SAS.