Fermer2
andoh_wilfriedLe 13/04/2005 à 14:39
Voilà, j'ai décidé de faire de MyLiB un iterperteur. Je ne suis pas en info, je voudrai votre avis sur certaines modifications imminentes . Bien sur l'objectif principale reste avant tout la vitesse mais je dois aussi eviter de gaspiller de l'espace mémoire.

- Gestion des Variables : (le code existe déjà dans MyLib)
[cite]

- Gestion des Argument de Type ENTIER,FLOAT,STRING dans la pile.
- J'abandonne la gestion de LISTE et MATRIX TI-Basic dans la pile au détriment d'une structure C.
Il aura un gain considérable en vitesse .
- Je garde la possibilité de chargé le contenu d'une LISTE ou MATRIX dans une Structure.
Seul cette fonctions gerera les LISTE ou MATRIX
- J'offre la Possibilité de Retourner convertir une Structure au format TI-Basic Equivalent
[\cite]

STRUCTURE d'ARGUMENTS

*** { int num; float dec; char * str ; short type } ARG;
*** { union { int num; float dec; char * str ; } var; short type } ARG;

celle avec l'union prend moins d'espace.
en terme de vitesse pour l'union , il y a juste un (cast) à faire pour lire la donnée.
ça devrait pas trop ralentir je pense.


Gestion des ARGUMENTS

Je conserve la même gestion des arguments que MyLiB : (
*** passage d'arguments Simple ou de type Tableau à une fonction
*** utilisation des Tag Spéciaux pour étendre les combinaison

à la place des LISTES/MATRICE , il devra y avoir le nom d'une variable car j'ai pécisé que les LISTE/MATRIX devront être chargé dans une structure avant utilisation

Voilà, j'ai décidé de faire de MyLiB un iterperteur. Je ne suis pas en info, je voudrai votre avis sur certaines modifications imminentes . Bien sur l'objectif principale reste avant tout la vitesse mais je dois aussi eviter de gaspiller de l'espace mémoire.

- Gestion des Variables : (le code existe déjà dans MyLib)


- Gestion des Argument de Type ENTIER,FLOAT,STRING dans la pile.
- J'abandonne la gestion de LISTE et MATRIX TI-Basic dans la pile au détriment d'une structure C.
Il aura un gain considérable en vitesse .
- Je garde la possibilité de chargé le contenu d'une LISTE ou MATRIX dans une Structure.
Seul cette fonctions gerera les LISTE ou MATRIX
- J'offre la Possibilité de Retourner convertir une Structure au format TI-Basic Equivalent


STRUCTURE d'ARGUMENTS

*** { int num; float dec; char * str ; short type } ARG;
*** { union { int num; float dec; char * str ; } var; short type } ARG;

celle avec l'union prend moins d'espace.
en terme de vitesse pour l'union , il y a juste un (cast) à faire pour lire la donnée.
ça devrait pas trop ralentir je pense.


Gestion des ARGUMENTS

Je conserve la même gestion des arguments que MyLiB : (
*** passage d'arguments Simple ou de type Tableau à une fonction
*** utilisation des Tag Spéciaux pour étendre les combinaison


Gestion de la VAT des STRUCTURES de Variable.

Je compte utiliser en réalité des Nombres en lieu et place des noms de variables.
je ferai la substition des noms de variable par des nombres à partir
d'une Table qui attribuera à chaque nom de variable un numéro de structure.



Au Sujet des Structures de contrôle


je ne vois que la solution suivante pour rechercher et définir les Offset de Saut :
- Après Parsing et Tokénéisation.
Reférencé les adresses des instructions de saut
Référencer les adresses des étiquettes de saut
Fait la substitution des instructions de saut par une nouvelle Instruction
'Jump', MoveOffSet de sorte qu'il se positionne sur l'étiquette de saut


J'avoue c'est encore un peu flou , car il va falloir parcourir plusieur fois le fichier
puisque chaque substitution change la taille du fichier.


Gestion de la VAT des STRUCTURES de Variable.

Je compte utiliser en réalité des Nombres en lieu et place des noms de variables.
je ferai la substition des noms de variable par des nombres à partir
d'une Table qui attribuera à chaque nom de variable un numéro de structure.



Au fait ça va faire 3 jours que j'ai commencé le parser.
Il est quasi finit puisqu'il ne me reste plus qu'à vérifier que la syntaxe des constantes ( Nom de variable, chaine, entier, double, liste, matrix )est correcte

voici les opérateurs supportée :
[cite]
2-Les opérateurs du language
----------------------------

Priorité décroissante par ligne
_______________________________
12 () []
11 ! (-) ++ --
10 ^
9 * / %
8 + - &
7 < <= > >=
6 == !=
5 &&
4 ||
3 = ^= *= /= %= += -=
2 ,
_______________________________

[\cite]