Algorithm development

SciNotes

var

Scilab is a high level programming language for scientific programming. It enables a rapid prototyping of algorithms, without having to deal with the complexity of other more low level programming language such as C and Fortran (memory management, variable definition, …). This is natively handled by Scilab, which results in a few lines of code for complex mathematical operations, where other languages would require much longer codes.

It also comes with advanced data structure such as polynomials, matrices and graphic handles and provides an easily operable development environment :

  • Scinotes is a text editor enabling easy script edition with autocompletion, automatic indentation, code navigator, statement executing possibility and to manage multiple instances.
  • Variables editor allows you to handle/edit the variables as matrices and analyze it through different kind of plot. You can also copy / paste values from a spreadsheet or from another application

What’s new in Scilab 6

With this new version, Scilab now offers useful tools for clean and effective algorithm development.

  • A full-featured debugger

Although it doesn’t provide user interface yet, debug mode allows you to

– Handle breakpoints with or without condition
– Display variable and callstack
– Launch execution with stop and error or step by step

find out more with this tutorial

  • A profiler and coverage tool

Optimize your algorithm by reducing execution time with this first-layer dynamic analysis tool.

For a simple function foo, you can proceed as follow to get a html report

cov

 

–> covStart(foo)
–> for i=1:1e5; foo(i); end
–> covWrite(“html”, MyDir”)
–> covStop();

 

  • A “lint”-like command, SLINT

With the command line slint(“foo2.sci”) you will be able to make static analysis of your code in function foo2. It will detect unclear, risky or suspicious code according to a list of checkers you can find on the Scilab help.

slint

Integration with other codes

Source of innovation and development control, Scilab interconnection capabilities are numerous. It is then possible to use Scilab from other applications or integrate your components written in other languages within Scilab.