There exist two categories of general scientific software: computer algebra systems that perform symbolic computations, and general purpose numerical systems performing numerical computations and designed specifically for scientific applications. The best-known examples in the first category are Maple, Mathematica, Maxima, Axiom, and MuPad. The second category represents a larger market dominated by MATLAB. Scilab belongs to this second category.
Scilab is an interpreted language with dynamically typed objects. Scilab can be used as a scripting language to test algorithms or to perform numerical computations. But it is also a programming language, and the standard Scilab library contains around 2000 Scilab coded functions. The Scilab syntax is simple, and the use of matrices, which are the fundamental object of scientific calculus, is facilitated through specific functions and operators. These matrices can be of different types including real, complex, string, polynomial, and rational. Scilab programs are thus quite compact and most of the time are smaller than their equivalents in C, C++, or Java.
Scilab is mainly dedicated to scientific computing, and it provides easy access to large numerical libraries from such areas as linear algebra, numerical integration, and optimization. It is also simple to extend the Scilab environment. One can easily import new functionalities from external libraries into Scilab by using static or dynamic links. It is also possible to define new data types using Scilab structures and to overload standard operators for new data types. Numerous toolboxes that add specialized functions to Scilab are available on the official site.
Scilab also provides many visualization functionalities including 2D, 3D, contour and parametric plots, and animation. Graphics can be exported in various formats such as Gif, Postscript, Postscript-Latex, and Xfig. In addition to Scilab’s user interface functions, the Scilab Tcl/Tk