30

Godzil, Vertyos, c'est vraiment débile de votre part de vouloir ignorer les standards par pur esprit de contradiction. Vous avez quel âge? En lisant vos posts, on dirait autour de 3 ans... roll Quand vous aurez passé l'âge de contradiction, vous comprendrez l'utilité d'avoir un standard que tout le monde accepte sans sortir des excuses bidon comme les vôtres.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

31

C'est vrai que tu argumente beaucoup sur ce coup roll


edit: oups, j'arrete la la discution sur ce topic, retour a MyLib (si l'auteur a encore des trucs a dire)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

32

33

[EDIT: Déplacé dans l'autre topic.]
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

34

35

Ce topic est désormais sous modération serrée. Au delà de ce post je lock/édite sans préavis supplémentaire, et kicke si récidive.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

36

Ok ! Merci à tous pour la séance de motivation sur projet personnel.

C'étais très bien , j'ai apprécié.

Au passage , je suppose que pour la plupart , vous êtes en Info à la FAC.

je retourne au PHP , en tachant de passer 1 heure par jour si possible au débogguage du projet.

La sortie sera surement pour Noël ciao

___________________________________________________________________________________________________________________

Je vais me mettre serieusement à la programmation C/VBA/PHP pour PC.

Comme cela , à chaque fois que j'aurais un Projet , j'écrirais le code en Double si possible.

Parceque j'ai en projet de faire pas mal de Progiciels de Gestion.
Je fini mon Eco mais je me verrai bien faire un boulot dans ce sytle (Programmeurs Progiciels de Gestion/Stat)

J'ai déjà fait, écris 2 application sous EXCEL ; une en Finance et l'autre en PAIE.
je vais me mettre serieusement à la Compta et Regrouper le tout pour faire un Truc Potable.

Avant le C je programmais comme un porc. Les Structures ont changés ma vision des choses.

Du coup je vais optimiser en VBA pour EXCEL comme un malade.

C'est largement suffisent pour faire des application d'Entreprise.

Je voudrait bien le Faire en PhP , faut que je vois laquelle des solutions est un support plus viable.

On sait jamais , si je pense à monnayer cela un jour , je serai obliger de penser au coup d'acquisition des Logiciels (coté Développeur/Acheteur ).

EXCEL me semble une solution simple et plus connu pour PME.

37

-> C'est le retour Grand de MyLib. les Variables locales sont supportées.

Disons d'ici 2 jours vous aurez la Beta 1.00 avec 95 fonctions voir plus.
Le Temps d'écrire un fichier d'aide potable.

Actuellement je finis :

- l'affichage des Sprites en NVG.
- la fonction 'find' pour la recherche d'une succession de byte dans un fichier. en gros c'est le 'FIND' de l'Editeur TI.
- les fonctions pour recuperer la liste des Répertoires/fichiers

Les codes peuvent être tokénéisé pour plus de rapidité.
j'essayerai de faire un détokénéiseur mais je ne promet rien.

38

39

Martial Demolins ->j'ai fini.
C'est juste que je soignes la finission.

Il ne manque plus que :
- la fonction pour connaitre l'état d'une variable (archivé,locké,caché)
- le problème des sprites en NVG avec ou sans ecran virtuel.

On peut dire que c'est un genre de "Vertel_Plus" qui fait 25Ko.

Finallement je vais retirer pour le moment le code gérant les structure internes (celle qui permettent de charger les variables TiOS en Variable C). j'ai pas le temps de m'en oqp.


Au fait ajouter 2 fonctions compatible TI-Basic :
- "pars", varname,"Commande TI-Basic"
- "expr", varname

1- "pars" tokénéise le code TI-Basic
2- "expr" execute le code tokénéisé contenu dans varname


Bon vous verez tout cela d'ici 2 jours. je dois me préoccuper d'une tache ingrate que j'ai laissé pour la fin :
HeapLock() pour eviter que les variable de la VAT ne soit corrompu par une compression du Heap.

Imagine que je travaille directement dans les variables TiOS par Indirection. Faut donc que je les vérouille toutes avant utilisation et que je les dévérouille toute après.







40

c'est presque fini ! Ouf !
la première Beta sera pour ce soir .
M'enfin pour finir une Notice à peu près potable faudra attendre ce soir vers 21 H.


C'est cool de pouvoir utiliser du code Basic au beau milieux d'une librairie.
On peu quasiment tout faire.

il ne me reste que 2 trucs à faire en 30 minutes :

- compatibilité répertoire temporaire MyLiB et TiOS
- HeapLock pour le vérouillage des variables de la VAT.


Je vais faire des Tests pour voir si les fonctions de manipulation de LIST suivantes
- "summ"
- "prod"
- "mini",
- "maxi"
sont plus rapides que leur équivalent Ti Basic.
Si ce n'est pas le cas elles seront virés.



Mais voici la nouvelle table des fonctions pour vous mettre l'eau à la bouche : char *tbl_func[]={  (char *)"proj", // OK     NbrProg, ProgEstack, NbrGoto, NbrVarNum            (char *)"vers", // OK                                                                                Retourne la Version de MyLib  (char *)"temp", // OK     Pas d'Arguments                                        (dés)active le répertoire Temporaire  (char *)"pars", // OK     Varname, "Ti-Basic Expr"               Tokeneise Expr dans Varname  (char *)"expr", // OK     Varname                                                            Execute l'Expression contenu dans Varname  (char *)"runs", // OK     ExterneFileName  (char *)"outs", // OK     Pas d'Arguments       (char *)"seti", // OK     VarNum, NUM, PUSH                                   Définit la valeur du compteur  (char *)"movi", // OK     VarNum, VarNum, PUSH                         Copie la valeur du compteur  (char *)"addi", // OK     VarNum, NUM, PUSH                                   Ajoute NUM au Compteur  (char *)"mult", // OK     VarNum, NUM, PUSH                                     (char *)"madd", // OK     VarNum, MULT, ADD                                     (char *)"divd", // OK     VarNum, NUM, PUSH                                     (char *)"modo", // OK     VarNum, NUM, PUSH                                     (char *)"rand", // OK     VarNum, NUM, PUSH                                     (char *)"valu", // OK     VarNum                                                            Retourne la valeur du copmteur  (char *)"into", // OK     VarNum, MIN, MAX, MODE{0,1}            (char *)"last", // OK     Count, Step            (char *)"unit", // OK     VarNum, OffSet, Factor  (char *)"mini", // OK     EXPR, First, Len  (char *)"maxi", // OK     EXPR, First, Len  (char *)"summ", // OK     EXPR, First, Len  (char *)"prod", // OK     EXPR, First, Len  (char *)"test", // OK     EXPR1, EXPR2,{==, !=, <, >},{And, Or, Index, Valu}, Count, StrLen  (char *)"etyp", // OK     EXPR                                                                 Retourne le Type {0 NUM, 1 STR, 2 LIST, 3 MAT}  (char *)"revl", // OK     EXPR                                                                 Inverse l'ordre des élément d'une LISTE/MATRIX  (char *)"diml", // OK     EXPR                                                                 Retourne la dimension d'une LISTE/MATRIX  (char *)"subl", // OK     EXPR, First, Len                                   Retourne l'élément d'une LISTE/MATRIX  (char *)"augl", // OK     EXPR, EXPR                                                  Retourne l'élément d'une LISTE/MATRIX  (char *)"jump", // OK     BOOLEAN, OffSet                                        Saute OffSet instructions (offset peut être négatif)  (char *)"when", // OK     BOOLEAN, EXPR1, EXPR2                         Si BOOLEAN==0 retourne EXPR2, sinon EXPR1  (char *)"dupn", // OK     EXPR, Count                                                  Duplique n fois EXPR dans la pile interne  (char *)"labl", // OK     NUM_GOTO                                                       Définit un Label  (char *)"goto", // OK     NUM_GOTO                                                       Provoque un Branchement au Label équivalent  (char *)"prog", // OK     NUM_PROG                                                       Définit le début d'un Prog  (char *)"endp", // OK     NUM_PROG                                                       Définit la fin d'un prog  (char *)"runp", // OK     NUM_PROG,NBR_LBL,NBR_INT               Execute le Prog en lui allouant des Ressources  (char *)"outp", // OK     NUM_PROG                                                       Quitte le prog  (char *)"ikey", // OK     NUM{0 à 395} default=336               Règle la vitesse du PAD  (char *)"rkey", // OK     NUM{0 à 395} default=48                    Règle la vitesse du PAD  (char *)"gray", // OK     NUM{0 OFF,1 LIGHT,2 DARK}               Active les niveau de gris  (char *)"stri", // OK     NUM [, Len, FillChar]                         Converti un entier en chaîne  (char *)"scat", // OK     Str [, InsString]                                   Concatène des chaînes  (char *)"mid$", // OK     Str [, Start, Len]                              extrait une sous chaine  (char *)"arch", // OK     Varname                                                            (Dés)archive une Variable  (char *)"apdt", // OK     NUM_POS                                                            Règle le temps de mis sous tension de la TI  (char *)"wait", // OK     NUM_POS                                                            Attend une durée de temps sans rien faire  (char *)"dbug", // OK     NUM_POS                                                            Mode déboguage dans la ligne d'Etat  (char *)"time", // OK     NUM_POS                                                            Règle le compteur pour le Chronomètre  (char *)"srce", // OK     VarName                                                             Indique le Début d'une source Externe de Code qui sera sauver dans une Liste   (char *)"ends", // OK     Pas d'arguments !                                   Marque la Fin d'une source de Code Externe  (char *)"answ", // OK     Pas d'arguments !                               (Dés)active la suppression des arguments utilisé par les fonctions  (char *)"brek", // OK     Pas d'arguments !                               C'est pour sortir de la Lib en Cas de BUG  (char *)"offp", // OK     Pas d'arguments !                               Etteind la TI  (char *)"quit", // OK     Pas d'arguments !                               Quit la Lib   (char *)"virt", // OK     Pas d'arguments !                               (Dés)active l'écran virtuelle  (char *)"clrv", // OK     Pas d'arguments !                               Libère la mémoire de l'écran virtuelle à chaque appel  (char *)"clrs", // OK     Pas d'arguments !                               Efface l'écran  (char *)"list", // OK     Pas d'arguments !                               (dés)active la récupération des réponses dans une Liste  (char *)"null", // OK     Pas d'arguments !                               fonction interne à ne pas utiliser : BUG assuré  (char *)"paus", // OK     Pas d'arguments !                               Attends l'appui d'une touche  (char *)"wkey", // OK     {0,1,2,3}                                                       Lit une touche en pause  (char *)"gkey", // OK     {0,1,2,3}                                                   Lit une touche sans pause  (char *)"tkey", // OK     "Row1col1Row2col2..."                                             Lecture de touches multiples  (char *)"stop", // OK     PicName, x0, y0, x1, y1                                             Sauve un image dans la VAT  (char *)"stor", // OK     Varname, EXPR, Mode                                                       Sauve une EXPR dans la VAT  (char *)"make", // OK     Varname, Size, Resize{0,1}                                   Crée une Entrée dans la VAT  (char *)"writ", // OK     Dest, Scre , Start, Len, Mode                              Copie Len Bytes de  Scre dans  Dest à partir de Start  (char *)"copy", // OK     Dest, Start1, Srce, Start2, Len                         Copie Len Bytes de  Scre à partir de Start2 dans Dest à partir de Start1  (char *)"find", // OK     Dest, Start1, Srce, Start2, Len, Mode          Cherche Len Bytes de  Dest à partir de Start1 dans Srce à partir de Start2  (char *)"read", // OK     Srce, Start, Len, Mode                                             Lit Len Bytes de  Scre à partir de Start  (char *)"delt", // OK     Varname, Type                                                                      Supprime la variable  (char *)"stat", // OK     Varname, Type                                                                      Etat de la variable  (char *)"hide", // OK     Varname, Type, Mode                                                       (dé)cache la variable  (char *)"lock", // OK     Varname, Type, Mode                                                       (dé)vérouille la variable  (char *)"chek", // OK     Varname, Type, Mode                                                       (dé)sélectionne la variable  (char *)"size", // OK     Varname                                                                                     Taille de la variable  (char *)"type", // OK     Varname, Mode{0,1}                                                       Type de la variable  (char *)"fold", // OK     Varname, Mode{0,1}, Filtre                                   Liste des Dossiers/Fichiers  (char *)"help", // OK     STR                                                                                               Affiche un msg dans le Status Line  (char *)"info", // OK     Title, STR, BT_1, BT_2                                             Affiche un msg dans une Boite de Dialogue  (char *)"text", // OK     STR, X, Y, Font, Mode{0 à 4}  (char *)"pict", // OK     PictName, X, Y, Mode{0 à 6}  (char *)"sprt", // OK     PictName, X, Y, Mode{0 à 2}, Height, Sprite{0 à 2}  (char *)"mape", // OK     MapeName, X, Y, Mode{0 à 2}, Top, Left                    affiche un MAP  (char *)"wdth", // OK     STR, Font{0,1,2}                                                                           Calcule La longueur de la Chaine  (char *)"clip", // OK     X0, Y0, X1, Y1                                                                                Définit la zone d'affichage graphique  (char *)"line", // OK     X0, Y0, X1, Y1, Mode{0 à 7}  (char *)"crcl", // OK     X0, Y0, R1, R2, Mode{},Type{0=vide, 1=Plein}  (char *)"rect", // OK     X0, Y0, X1, X2, Mode{},Type{0=vide, 1=Plein}  (char *)"ofst", // OK     OffsetX, OffsetY  (char *)"sequ", // OK     Init, Step, Count                                             Génère un liste  (char *)"pixl", // OK     X0, Y0, Mode{-1,0,1,2}                              Dessine ou Lit l'état d'un pixel  (char *)"2lst", // OK  MUTLI_EXPR                                                            Créer une liste à partir de la pile interne  (char *)"2arg", // OK  MUTLI_EXPR                                                            Supprime les accolages de liste  (char *)"push"};// OK  MUTLI_EXPR                                                            Ajoute des EXPR dans la pile interne

41

Je gère les répertoires locaux dans une librairie basic qui possède
ses sous programmes propres.

Je veux faire exécuter l'instruction TI-Basic suivantes
à partir de ma librairie :

"1->n:3->m:n+m->p"

Précisons que la difficulté réside dans le fait que toutes
les variables sont locales (Compatible Ti-Basic & MyLib)

Le répertoire temporaire actif est '0001', le résultat est :

- Ti Basic : n=1 m=3 p=4
- MyLib : n=1 m=3 p=n+m

Toujours est-il que j'ai réussi à convaincre le TiOS d'utiliser
le Répertoire temporaire que j'ai défini pour la sauvegarde avec
store ( '->' ).

Je suis super content; mais lors du calcule de l'expression dans 'n+m->p' le TiOS ne regarde pas dans mon répertoire locale
pour attribuer les valeurs de 'n' et 'm'.


j'utilise les fonctions suivantes de TIGCC pour évaluer
une expression :

push_parse_text ()
NG_execute ()



je pense que la commande du TI-Basic 'Local var1,var2,...'
modifie les noms des variables déclarés locales lors de la tokénéisation de expressions.


Après 30 minutes passé sur un Hexa Viewer j'ai trouver que
le tag LOCAL_VAR_TAG est ajouté avant le nom d'une variable locale.

Bien je suis fixé et je vait dont agir en conséquence.


Il va me falloir un énorme HACK pour réussir ce coup.

Je vais tokénéiser le code comme s'il s'agissait d'un programme.
Ensuite j'extrais la portion de code qui m'intéresse une fois
que la TIOS aura rajouté les LOCAL_VAR_TAG.



C'est le seul problème justifiant le retard de la sortie de
la librairie.

MyLib va bientôt atteindre les 28Ko.

42

Disons que le problème ennoncé ci-haut na été résolu.
Faut que je vérifie les plages de valeur des paramètres entiers pour chaque fontion.

je vais mettre modulo pour faire simple.

Je vais relire la notice rapide et essayer de faire quelques optimisations de code.

43

44

45

Alors , Alors , ça tarde cette sortie.
En fait je viens de reprendre la tokénéisation du Code à partir d'un fichier TEXT.
C'est très contraignant et même illisible d'avoir à écrire un programme entier sur une seule Ligne.

ça va me prendre 1 semaine environ pour faire cela.
Faut dire que j'ai vu la version 2 de GFA par Geogeo vient de sortir.
Ce qui m'oblige à plus de rigueur même si mon projet n'est en rien comparable à celui de Geogeo .
Je vais :
- implémenter les structures de controle For , Do While, While
- Ajouter la prise en charge de variable de type short dans la VAT
- Ainsi que les Tableaux de short de 1 à 2 dimensions
- Reintroduire le code pour les Tableaux de chaînes de caractères

Le but est de rendre les traitements des argument plus rapide.
Je n'ai pas l'intention de supprimer la gestion des variables TI-Basic.

Mais je pense que (si je les convertissais tous en Structure C) ça serait un gain considérable.
je vais rapidement voir la faisabilité de cela.


46

heu Tu voudrait pas plustot nous faire un interpréteur Basic?
Parcequ'avec tout ce que fait ta lib, ca y ressemble de plus en plus.
avatar

47

48

"mdr" ? Non c'était pas stupide sa remarque, et il est surement possible de faire un interpreteur Ti-Basic bien plus rapide que celui du TiOS même en étant obligé de se plier à une partie des contraintes... La vitesse globale du programme sera bien meilleure qu'avec une lib a priori...

Mais il me semble qu'il a dit interpreteur "basic" et pas "ti-basic", donc ça peut être un truc à la gfa basic (un peu moins contraignant et un peu plus "basic" si possible), un nouveau langage et son interpreteur (ça arrive, ça arrive trigic)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

49

c'etait combien deja ? 5 * plus lent ? grin
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

50

Martial Demolins> J'ai pas suivi très attentivement l'actualité TI ces derniers temps mais quand je vois tout ce que fait la lib, au final il y a une bonne partie des fonction pour faire un interpreteur. Je ne parlais pas de faire de quelquechose de compatible "TI-Basic" car dans ce cas la on bouclerai la boucle.
D'ailleurs même un interpréteur TI-Basic est envisageable. C'était l'idée de base de GT-Basic (sur vos calc avant noël 2048. (c)Pollux)
avatar

51

Mais il me semble qu'il a dit interpreteur "basic" et pas "ti-basic", donc ça peut être un truc à la gfa basic (un peu moins contraignant
et un peu plus "basic" si possible)


Comment ça contraignant? Car il manque un IDE?

andoh_wilfried:
Si tu réalises la structure FOR, je te conseil de la réaliser de façon statique (c'est-à-dire avec sauvegarde des paramètres de ta boucle dans une pile genre incrémentation si Step, valeur de condition) tu auras ainsi une boucle très rapide (tout dépend de ta gestion aussi) mais qui possèdera les inconvénients suivants:
Les codes suivants seront invalides (sauf si tu les gères bien sûr):
For I=0 To 500
  For J=0 To 500
    Goto Label
  Next J
  Label:
Next I


 
Goto Label:
For I=0 To 500
  Label:
Next I


Autrement tu peux la faire un peu de la même façon que ton While et ainsi avoir des boucles FOR dynamiques.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

52

geogeo
:
Mais il me semble qu'il a dit interpreteur "basic" et pas "ti-basic", donc ça peut être un truc à la gfa basic (un peu moins contraignant
et un peu plus "basic" si possible)
Comment ça contraignant? Car il manque un IDE?

Euh, je crois que tu t'enflammes un peu, c'était pas du tout une critique de gfa basic et compagnie, je pense qu'il voulait simplement dire que faire un langage autre que le ti-basic donnait plus de liberté smile (moins de contraintes)
andoh_wilfried:
Si tu réalises la structure FOR, je te conseil de la réaliser de façon statique (c'est-à-dire avec sauvegarde des paramètres de ta boucle dans une pile genre incrémentation si Step, valeur de condition) tu auras ainsi une boucle très rapide (tout dépend de ta gestion aussi) mais qui possèdera les inconvénients suivants:
Les codes suivants seront invalides (sauf si tu les gères bien sûr): ...

Ben ça, il suffit de garder en mémoire un offset qui dit combien d'octets ont été alloués sur la pile, et quand on fait un goto, on ajuste la pile pour que l'offset corresponde à celui de la destination du goto smile

Mais de toute façon c'est un peu inutile comme optimisation dans le cadre d'un interpréteur et non d'un compilateur, je pense... (accéder à une variable de la pile avec un offset ne fera pas perdre plus d'une dizaine de cycles par rapport à un accès en haut de pile, c'est complètement négligeable par rapport à tous les autres coûts ^^)
Autrement tu peux la faire un peu de la même façon que ton While et ainsi avoir des boucles FOR dynamiques.

Euh, je ne vois pas en quoi ta technique ne pourrait pas s'appliquer à un While aussi ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

53

un peu plus "basic" si possible)

Euh, le gfabasic de geogeo est proche du GFA Basic de l'atari st, et je trouve que c'est un savant mélange de Basic Locomotive amstrad et de Qbasic

(raaah, putain de pc qui plante, 3ème tentative de poster ce message)

54

Ben on aime ou on aime pas, je trouve juste dommage qu'un langage interpreté soit typé, limité à des nombres de 4 octets, etc... Après c'est sûr ça le rend plus rapide, mais c'est absolument pas souple pour de l'interpreté amha (autant faire un truc en C et compiler, y'a que la gestion des erreurs qui saute). L'avantage du basic Ti c'est de pouvoir faire n'imp, déclarer un peu tout et n'importe quoi à la volée, et ça marche ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

55

Euh, je crois que tu t'enflammes un peu, c'était pas du tout une critique de gfa basic et compagnie, je pense qu'il voulait simplement dire que faire un langage autre que le ti-basic donnait plus de liberté (moins de contraintes)


Non je ne m'enflamme pas, je veux juste comprendre pour mieux faire.
Mais je ne comprend pas ce que tu veux dire par liberté car on peut faire tout ce que l'on veut en GFA-Basic, accéder à des zones mémoires, allouer de la mémoire, utiliser des pointeurs... Mais il faut voir GFA-Basic comme plusieurs couches, une couche de débutant où on l'utilise comme du QBasic et une couche plus puissantes avec une approche au C.
L'origine de ce langage n'est pas de moi (même si je me suis permis d'autoriser certaines choses comme (Exit, Continue, Else If...). Et il a fait ces preuves sur Atari ST. smile
Ben ça, il suffit de garder en mémoire un offset qui dit combien d'octets ont été alloués sur la pile, et quand on fait un goto, on ajuste la pile pour que l'offset corresponde à celui de la destination du goto
Mais de toute façon c'est un peu inutile comme optimisation dans le cadre d'un interpréteur et non d'un compilateur, je pense... (accéder à une variable de la pile avec un offset ne fera pas perdre plus d'une dizaine de cycles par rapport à un accès en haut de pile, c'est complètement négligeable par rapport à tous les autres coûts ^^)


Oui c'est une soluton aussi. smile

Euh, je ne vois pas en quoi ta technique ne pourrait pas s'appliquer à un While aussi ?


Aussi mais bon si ya que des boucles statique ça risque de devenir contraignant? bref c'est selon le codeur.

Ben on aime ou on aime pas, je trouve juste dommage qu'un langage interpreté soit typé, limité à des nombres de 4 octets, etc... Après c'est sûr ça le rend plus rapide, mais c'est absolument pas souple pour de l'interpreté amha (autant faire un truc en C et compiler, y'a que la gestion des erreurs qui saute). L'avantage du basic Ti c'est de pouvoir faire n'imp, déclarer un peu tout et n'importe quoi à la volée, et ça marche ^^


Changer le typage d'une variable GFA-Basic est un jeu d'enfant genre ceci est valable. (pas pour l'instant mais ça va le devenir).
*A="Ma chaîne" !Le 'Flottant' devient 'une chaîne de caractère'!


En fait l'objectif de GFA-Basic est d'être très rapide et peut être à l'avenir de ce voir compilé. L'utilisateur peut très bien manipuler toujours le même type de variable c'est-à-dire les flottants pour tous les nombres comme le fait le TI-Basic mais en terme de taille et vitesse du programme c'est pas trop cool. sad

Mon objectif n'est pas de me rapprocher du TI-Basic, mon objectif est de proposer un langage Basic puissant.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

56

Je sais bien que c'est interessant, mais il y a a ma connaissance un topic GFA Basic ici, et ce serait respecter l'auteur de ce topic que d'arrêter de causer d'un autre programme ici...wink

57

geogeo
:
Euh, je crois que tu t'enflammes un peu, c'était pas du tout une critique de gfa basic et compagnie, je pense qu'il voulait simplement dire que faire un langage autre que le ti-basic donnait plus de liberté (moins de contraintes)


Non je ne m'enflamme pas, je veux juste comprendre pour mieux faire. Mais je ne comprend pas ce que tu veux dire par liberté car on peut faire tout ce que l'on veut en GFA-Basic, accéder à des zones mémoires, allouer de la mémoire, utiliser des pointeurs... <blablabla>

Ben, c'est ce que je dis justement confus Tu as plus de liberté quand tu fais un langage comme GFA-Basic puisque tu peux mettre ce que tu veux dedans embarrassed

Et par "t'enflammer" je veux dire que tu considères ça comme une critique de GFA-Basic alors qu'à la base c'était pas ça du tout a priori...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

58

cela dit, comme le faisait remarquer serioussam, c pas vraiment le sujet...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

59

ben si, je parle des basic différents du ti-basic en général... (que ce soit gfa-basic ou autre chose)

après que ça fasse pas avancer gd-chose, ok, mais je ne fais que répondre à geogeo qui prenait le post de vertyos comme une critique de ce type de basic ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

60

Topic is : "MyLiB : Une Librairie qui court-circuite le TIOS".