2 Quelques idées générales

Le langage Scilab est un langage qui a été initialement conçu pour privilégier les opérations matricielles en ciblant des applications scientifiques. Les objets ne sont jamais déclarés ou alloués explicitement, ils ont un type dynamique (renvoyé par la fonction typeof) et leur taille peux changer dynamiquement au gré des opérateurs qui leurs sont appliqués:


\begin{sessioncmd}
\par -->a= rand(2,3); \sleftarrow{\normalfont\verb+a+ est (ap...
...rmalfont destruction explicite de \verb+a+ }
ans =
\par0.
\par\end{sessioncmd}

La mémoire disponible à un moment donné par l'utilisateur peut-être contrôlée (c'est-à-dire demandée ou changée) au moyen de la commande stacksize. Elle est bien sûr limitée par la mémoire dynamique que l'on peut demander (mémoire allouée par malloc sur le ``tas''). Les commandes who et whos permettent d'obtenir les noms et les tailles des variables présentes dans l'environnement d'exécution.


\begin{sessioncmd}
\par -->stacksize() \sleftarrow{\normalfont mémoire disponibl...
...); \sleftarrow{\normalfont On peut maintenant générer \verb+A+}
\end{sessioncmd}

L'évaluation des expressions Scilab se fait au moyen d'un interprète appelé scilab. C'est l'interprète qui gère le contexte d'exécution des expressions Scilab.

Dans le contexte d'exécution de Scilab, un utilisateur dispose par défaut d'un grand nombre de fonctions. Ces fonctions peuvent être des fonctions écrites en Scilab; nous verrons en effet que Scilab est un langage de programmation. Mais elle peuvent aussi avoir été écrites en C, Fortran, ...et rendues accessibles au niveau de l'interprète Scilab.

Ce sont ces nombreuses fonctions facilement utilisables qui font la richesse et la puissance du langage. Notons aussi qu'un utilisateur peut enrichir l'environnement de base et cela de façon dynamique avec de nouvelles fonctions Scilab qui peuvent utiliser du code de librairies externes C, Fortran, .... On peut donc développer des ``boîtes à outils'' pour enrichir l'environnement d'exécution de Scilab et l'adapter à des besoins spécifiques.