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:
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.
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.