A propos des outils M2SCI
Présentation générale des outils de conversion de fichiers Matlab vers Scilab
Description
Scilab contient des 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é 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/modules/m2sci/macros/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/modules/m2sci/macros/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
tlist de type "contents" 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.
Voir aussi
- mfile2sci — Fonction de conversion de fichiers.m Matlab en langage Scilab
- translatepaths — convertit un ensemble de répertoires contenant des M-files vers Scilab
- overloading — display, functions and operators overloading capabilities
- sci_files — Comment écrire des fonctions de conversion
- Funcall — Crée le pseudo-code converti représentant l'appel à une fonction
- Operation — Génère le code interne Scilab représentant une opération
- Variable — Génère le code interne Scilab représentant une variable (sans sa valeur)
- Cste — Créé un arbre représentant une constante
- Infer — Créé un arbre contenant les données d'inférence
- Type — Crée un arbre contenant les données d'inférence de type
- Equal — Génère le code interne Scilab représentant une instruction "LHS = RHS"
- m2scideclare — Donner des indices pour aider M2SCI...
Report an issue | ||
<< Equivalences Matlab -> Scilab | Code Matlab => Scilab | m2scideclare >> |