Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Projets » GFA Basic oncalc (128 réponse(s))
./REPRISE DU POST PRECEDENT (post n°76)   Marquer comme non lu.
geogeo Ecrit le: Lundi 26 juillet 2004 à 12:39 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Comment tu détermines le END_TAG, sa position?
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°77   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 26 juillet 2004 à 12:42 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


C'est la fin de la liste d'arguments en lisant l'expression tokénisée de droite à gauche.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°78   Marquer comme non lu.
Onur Ecrit le: Lundi 26 juillet 2004 à 13:06 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


#top#
et dans ce cas il faut bien lire de droite a gauche.
des argu optionnels, ca c'est la classe.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°79   Marquer comme non lu.
geogeo Ecrit le: Lundi 26 juillet 2004 à 13:45 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


#eek# de droite à gauche.

On va aller doucement :D

J'ai l'expression:
I = Func I+50, Func M

En gros ça donne avec parenthèses
I = Func (I+50, Func M)

Ensuite je transforme cette expression, je remet les TAGs dans l'ordre soit
I I 50 + , M Func Func =

On ne connait pas à l'avance le nombre d'arguments de Func, de plus Func peut avec des arguments facultatifs...

Mon problème est simple comment, je lis de gauche à droite en empilant sur la pile, ainsi pour effectuer l'addition entre I et 50 on prend les 2 derniers termes de la pile... Mais on arrive aux fonctions et là il y a un gros pb. Pour M Func il n'y a qu'un argument qui est M pas autre chose et enfin pour le dernier Func il y a 2 arguments, le résultat de I+50 et le résultat de Func M. Ensuite reste l'affectation, on prend le dernier terme de la pile qu'on met dans l'avant dernier terme de la pile qui doit être bien sûr une variable.

Mon exemple est très ambigue, il faut donc que j'ai les bon tokens et que l'expressions soit compréhensible.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°80   Marquer comme non lu.
Onur Ecrit le: Lundi 26 juillet 2004 à 13:57 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


au fait je crois qu'on est pas obligé de lire de droite a gauche

a chaque fois qu'on rencontre une fonction on met end_tag, on place les arguments et on termine par FUNC

style
I=Func(A,B,C)
ca donne simplement
[I] [END_TAG] [A] [B] [C] [Func] [=]

si on a I=Func(A+50,B,C) ca donne

[I] [END_TAG] [A] [50] [+] [B] [C] [Func] [=]

qui sera transformé en:
[I] [END_TAG] [A+50] [B] [C] [Func] [=]

on empile on execute bla bla bla..

maintenant plus compliqué
I = Func(Func(A,B),C)

ca donnera

[I] [END_TAG] [END_TAG] [A] [B] [Func] [C] [Func] [=]

en gros "Func(" donne END_TAG et ")" donne Func ( faut qu'il retienne le nom mais cest pas dur ca)

apres l'execution de la fonction func (la plus imbriqué bien sur) ca se transforme en
[I] [END_TAG] [Func(A,B)] [C] [Func] [=]

on continue a appliquer jusqu'a ce qu'on en finisse!!!
[I] [Func(Func(A,B),C)] [=]
et voila pas besoin de droite a gauche.

dernier truc: tu vois qu'il y a effectivement pas besion de tag virgule comme tu suggere a nouveau, tu pousse tout ce qui est entre END_TAG et Func et tu execute des que tu vois Func
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°81   Marquer comme non lu.
geogeo Ecrit le: Mercredi 28 juillet 2004 à 22:27 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Merci, grâce à vous je peux enfin gérer les fonctions avec des paramètres aléatoires.

Voici la dernière version avec les sources et un bug de gestion des fonctions, un truc pas bien méchant mais bien chiant à corriger. :D

Téléchargez la dernière version

Pour lancer l'interpréteur c'est simple, il vous faut un kernel ou autre pour elever la limite des Ko, ensuite créer un nouveau fiuchier de type TEXT et de taper des commandes, ensuite de lancer le compilateur en faisant: gfbasic("mon_fichier")

Alors le stade du compilateur:

Capable de reconnaitre et de transtyper automatiquement les variables:

var = Flottant
var% = Entier sur 32 bits signé
var! = Booléen sur 8 bits signé

Une variable est automatiquement déclarer genre
var = 52.58
var% = var
var! = var
print var, var%, var!

Les fonctions supportées sont les suivantes:
Abs
Add
Atn
Div
Clr
Cls
Cos
Dec
Even
Exp
Fix, Trunc
Frac
Inc
Log, Log10
Mul
Int
Odd
Sgn
Sin
Sqr
Tan

Je vous laisse tester car c'est une version qui est vraiment basique pour l'instant. A savoir que cette version ne gère pas les chaînes de caractères.

Un petit programme de test

Cls
PI = 3.141593
I = 856
X = I/36*Cos (I*PI/180)
Y = I/36*Sin (I*PI/180)
Racine = Sqr ((X*Y)+I)
Entier% = ((X*9)/Y+6*I)*PI
Bool! = ((X<Y Xor I)*Racine)>=PI
Print PI, I, X, Y, Racine, Entier%, Bool!

-Edité le Mercredi 28 juillet 2004 à 22:27 par geogeo-
-Edité le Mercredi 28 juillet 2004 à 22:28 par geogeo-
-Edité le Mercredi 28 juillet 2004 à 22:34 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°82   Marquer comme non lu.
bobti89 Ecrit le: Jeudi 29 juillet 2004 à 00:01 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Je n'ai pas fait de gros testes, mais pour l'instant ca marche :)

Au fait (j'ai pas testé) ce prog devrait marcher sur pedrom, non ?
Ca pourrait être sympa, ca ferait un langage de base :)
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°83   Marquer comme non lu.
geogeo Ecrit le: Jeudi 29 juillet 2004 à 00:40 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Merci. :)
Sur Pedrom, je ne sais pas, surtout à cause des fonctions pour les calculs avec flottants. :(
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°84   Marquer comme non lu.
geogeo Ecrit le: Jeudi 29 juillet 2004 à 13:34 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ce projet n'interesse personne. #ouin#
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°85   Marquer comme non lu.
bobti89 Ecrit le: Jeudi 29 juillet 2004 à 14:00 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Si si, il m'intéresse, mais pour moi, il faut qu'il marche sur pedrom, sinon sur l'AMS normal, on a le basic (même si il est lent).

Mais continue quand même #top#
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°86   Marquer comme non lu.
geogeo Ecrit le: Jeudi 29 juillet 2004 à 14:04 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


bobti89 :
Si si, il m'intéresse, mais pour moi, il faut qu'il marche sur pedrom, sinon sur l'AMS normal, on a le basic (même si il est lent).

Mais continue quand même #top#


Le but est aussi de remplacer le TIBasic pour faire des programmes bien plus rapide et puissant avec pourquoi pas des niveaux de gris. Ensuite l'interpréteur a un avantage c'est qu'il est capable de générer un code tokenisé et ainsi économiser de la place.

Pour Pedrom normalement ça doit fonctionner si PpHd a implanté presque toutes les fonctions de gestion des virgules flottantes. Mais bon perso je programme toujours avec des entiers.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°87   Marquer comme non lu.
Onur Ecrit le: Vendredi 30 juillet 2004 à 08:18 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


moi aussi ca m'interesse mais je suis un peu malade en ce moment.. et en plus y a ma soeur qui se marie demain.. donc voila. Si vous voulez que je raconte plus ma vie, vous pouvez tjrs m'envoyer un petit message.

Plus sérieusement, je pense que même sur l'ams normal, un tel interpreteur est vraiment le bienvenu. Combien de gens programment en Basic parce que c'est simple mais se plaignent du manque de puissance?? Il y a surement plein de "bidouilleurs" qui n'ont jamais relié leur ti a leur pc, et qui font leur programme sur leur caltos.

Sinon une petite précision qui a son importance, c'est que c'est pas un compilateur! mais un interpreteur, ce qui a ses avantages et defauts par rapport a un compilateur. En général le principal default d'un interpreteur pourrait etre le manque de rapidité ce qui n'est pas le cas pour ce cas particulier.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°88   Marquer comme non lu.
Onur Ecrit le: Vendredi 30 juillet 2004 à 08:31 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


comment tu fais pour faire effacer l'ecran??
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°89   Marquer comme non lu.
Onur Ecrit le: Vendredi 30 juillet 2004 à 08:42 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


J'ai rien dis: Cls
#oops#
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°90   Marquer comme non lu.
geogeo Ecrit le: Vendredi 30 juillet 2004 à 12:14 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Nounours> Oui c'est un interpréteur mais très rapide, bien sur plus lent que du compilé mais bon c'est déjà ça.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°91   Marquer comme non lu.
Onur Ecrit le: Vendredi 30 juillet 2004 à 13:43 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Nounours :
En général le principal default d'un interpreteur pourrait etre le manque de rapidité ce qui n'est pas le cas pour ce cas particulier.

C'est pour ca que j'avais dis ca :D
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°92   Marquer comme non lu.
Benjy Ecrit le: Dimanche 1er août 2004 à 12:56 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ouai c pas mal lol
Le langage C y'a pas mieux!!!
    
./Post n°93   Marquer comme non lu.
geogeo Ecrit le: Dimanche 1er août 2004 à 19:30 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Là je suis sur une version avec chaînes de caractères, j'ai déjà environ 30 fonctions. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°94   Marquer comme non lu.
Benjy Ecrit le: Dimanche 1er août 2004 à 20:07 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


cool :):)
Le langage C y'a pas mieux!!!
    
./Post n°95   Marquer comme non lu.
geogeo Ecrit le: Lundi 2 août 2004 à 18:34 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bon j'ai fini la plupart des fonctions de gestion des chaînes de caractères avec arguments facultatifs... Ainsi que les fonctions de conversion décimal -> binaire, octal, hexadécimal et inversement.

Pour les fonctions de gestion des chaînes de caractères, doivent-elles prendre le suffixe $, par exemple mid devient mid$ mais l'écriture de mid est considérée comme une variable. Donc c'est soit l'un ou soit l'autre. :)

L'interpréteur possède maintenant 45 fonctions différentes environ. Dans peu de temps j'attaque la possibilité d'écrire des nombres en binaire, octal ou hexadécimal sous la forme &X, &O ou &H. D'écrire un flottant avec exposant et enfin de gérer les tableaux mais de façon dynamique, autrement c'est impossible. Une fois ses étapes de passées, je ferais la gestion des structures comme FOR TO NEXT ou encore IF THE ELSE END IF et ainsi il sera possible de faire des programmes en GFA Basic oncalc sur TI.

Quand à la compatibilité avec Pedrom, malheuresement il n'y en a pas à cause des virgules flottantes qui ne sont pas implantées entièrement sous Pedrom mais un programme n'utilisant aucune virgule flottante fonctionne très bien sous Pedrom et est donc bien interprété. A savoir que l'interpréteur est plus lent sous Pedrom avec une utilisation abusive des chaînes de caractères à cause des fonctions suivantes (memcpy et memmove).
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » Forum Ti68K » Projets » GFA Basic oncalc (128 réponse(s))
Pages : 5/7     « 1 2 3 4 [5] 6 7 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 43.35ms avec 18 requetes