Documentation

A_propos_des_outils_M2SCI - Présentation générale des outils de conversion de fichiers Matlab vers Scilab...

### Description

Scilab 3.0 contient une nouvelle version d'outils pour convertir des fichiers Matlab vers Scilab.

A partir d'un fichier Matlab, `mfile2sci` modifie ce fichier pour qu'il puisse être compilé par Scilab. Puis, ce code compilé est converti en "arbre" d'instructions par `macr2tree` . Cet "arbre" est une imbrication de listes et de tlists Scilab et est la base de la conversion. Chaque instruction de cet "arbre" est convertie en langage Scilab et l'inférence est réalisée pour savoir ce que sont les variables. Une fois cet "arbre" converti en Scilab, le code est généré en utilisant `tree2code` .

Toutes les tlists utilisées pour coder cet arbre (et que nous appelons "tlists M2SCI") sont énumérées ci-dessous :

  - funcall : tlist représentant l'appel à une fonction créée par `Funcall`
  - operation : tlist représentant une opération créée par `Operation`
  - variable : tlist représentant une variable créée par `Variable`
  - cste : tlist représentant une constante créée par `Cste`
  - equal : tlist représentant une instruction créée `Equal`
  - ifthenelse : tlist représentant une instruction de contrôle IF/THEN/ELSE créée dans les fonctions du "noyau" de M2SCI
  - while : tlist représentant une instruction de contrôle WHILE créée dans les fonctions du "noyau" de M2SCI
  - selectcase : tlist représentant une instruction de contrôle SELECT/CASE créée dans les fonctions du "noyau" de M2SCI
  - for : tlist représentant une instruction de contrôle FOR créée dans les fonctions du "noyau" de M2SCI

Le contenu des ces tlists est décrit dans les pages d'aide correspondantes.

Les opérations sont converties en utilisant une fonction appelée `%<codeop>2sci` avec codeop le code Scilab pour cette opérateur. Voir l'aide de overloading pour voir ces codes. Toutes ces fonctions sont déjà écrites et sont dans le répertoire SCI/macros/m2sci/percent/.

Les appels aux fonctions sont convertis en utilisant une fonction appelée `sci_<nom_de_la_fonction_Matlab>` . Bon nombre de ces fonctions ont été écrites et sont dans le répertoire SCI/macros/m2sci/sci_files/. Nous travillons actuellemnt à l'augmentation du nombre de fonctions Matlab converties. Néanmoins, tout le monde peut écrire ces fonctions en utilisant la pages d'aide sci_files.

L'inférence est réalisée à l'aide de tlists de type "infer" contenant les champs :

  - dims : liste des dimensions
  - type : tlist de type "type"
  - contents : contenu si la variable est une Cell ou une Struct

Type est une tlist de type "type" contenant les champs :

  - vtype : type de donnée
  - property : propriété de cette donnée

Pour plus d'informations sur l'inférence, voir la page d'aide de m2scideclare.

### See Also

`mfile2sci` , `translatepaths` , `overloading` , `sci_files` , `Funcall` , `Operation` , `Variable` , `Cste` , `Infer` , `Type` , `Equal` , `m2scideclare` ,

### Authors

  V.C.