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°57)   Marquer comme non lu.
geogeo Ecrit le: Lundi 19 juillet 2004 à 00:21 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Une autre version qui a été très optimisé principalement sur la gestion de l'analyseur syntaxique de base.

Il y a une ébauche de gestion des variables.

Télécharger le programme

Pour l'instant il est incapable d'effectuer un calcul avec des variables juste avec des nombres (entier ou virgule flottante).

Les signes reconnus sont:
+, -, *, /, ^, (, ), (-), AND, OR, XOR, IMP, EQV
Les commentaires avec '

Le programme affiche le temps d'execution et le contenu de la pile triée est correcte.
Ca serait sympa de tester le programme avec des calculs complexes et voir si le résultat est correct et vérifier qu'il n'y a qu'un seul élément dans la pile soit le résultat.

Pour tester il suffit d'envoyer le programme puis de créer un fichier TEXT soit par exemple test, d'écrire sur la première ligne un calcul et d'executer dans l'écran home: gfabasic("test").
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°58   Marquer comme non lu.
geogeo Ecrit le: Vendredi 23 juillet 2004 à 00:07 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ca interesse personne? #ouin#

Bon je viens de finir à l'instant la gestion des variables et le trantypage, c'est à dire qu'on peut mélanger sans pb les variables dans des calculs genre addition additionner un booléen avec un entier... L'interpréteur est capable de gérer les calculs de bases avec les opératieurs suivants:

+, -, *, /, ^, (-), AND, OR, XOR, IMP, EQV, =, <, >, >=, <=, <>

A savoir que rien que pour faire ça il fait déjà 17 Ko :( Je vais commencer à faire la gestion des fonctions genre PRINT...

Pour les arguments que pensez-vous d'une pile d'arguments c'est à dire qu'à la rencontre d'une virgule, on complète la pile?
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°59   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 23 juillet 2004 à 00:45 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  


geogeo :
Ca interesse personne? #ouin#

Bon je viens de finir à l'instant la gestion des variables et le trantypage, c'est à dire qu'on peut mélanger sans pb les variables dans des calculs genre addition additionner un booléen avec un entier... L'interpréteur est capable de gérer les calculs de bases avec les opératieurs suivants:

+, -, *, /, ^, (-), AND, OR, XOR, IMP, EQV, =, <, >, >=, <=, <>

A savoir que rien que pour faire ça il fait déjà 17 Ko :(

Voilà pourquoi ça n'intéresse personne... :(
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°60   Marquer comme non lu.
geogeo Ecrit le: Vendredi 23 juillet 2004 à 00:54 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Lol ouai faut bien commencer par quelque chose avant d'avoir un programme complet et utilisable :D.
Mais si on test ça me permet de corriger des bugs.
-Edité le Vendredi 23 juillet 2004 à 00:56 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°61   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 23 juillet 2004 à 01:47 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  


Tu ne comprends pas: le problème est que l'interpréteur prend trop de place et prendra toujours trop de place. :(
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°62   Marquer comme non lu.
Onur Ecrit le: Vendredi 23 juillet 2004 à 07:44 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


ben non ca va 17 ko, sachant que le plus dure est fait.
désolé geogeo mais j'ai du mal a suivre tes methodes. par contre passage des arguments jai compris ce que tu demandes. en effet je pense que tu peux le faire comme tu veux le faire par contre ca serait cool que tu prenne le standart de C, tu lis de droite a gauche et tu pousse au fur et a mesure, enfin tu pousse l'adresse de retour.

au fait, vous savez la chanson satisfaction, et ben.. quand ils fait push push push push push push push push .. ca me fait penser a des arguments poussés dans la pile.. voila je voulais juste le dire.
-Edité le Vendredi 23 juillet 2004 à 07:46 par Nounours-
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


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


Kevin Kofler :
Tu ne comprends pas: le problème est que l'interpréteur prend trop de place et prendra toujours trop de place. :(


Ouai bah je peux pas faire mieux. :( Si y a moyen de l'executer dans la mémoire Flash ça sera un bon point déjà.

ben non ca va 17 ko, sachant que le plus dure est fait.
désolé geogeo mais j'ai du mal a suivre tes methodes. par contre passage des arguments jai compris ce que tu demandes. en effet je pense que tu peux le faire comme tu veux le faire par contre ca serait cool que tu prenne le standart de C, tu lis de droite a gauche et tu pousse au fur et a mesure, enfin tu pousse l'adresse de retour.

au fait, vous savez la chanson satisfaction, et ben.. quand ils fait push push push push push push push push .. ca me fait penser a des arguments poussés dans la pile.. voila je voulais juste le dire.


Comment ça pour les arguments? Ils seront mis dans une pile mais la lecture se fait de gauche à droite ainsi pour pouvoir avoir les arguments dans le bon ordre il faut parcourir la pile de bas en haut.
-Edité le Vendredi 23 juillet 2004 à 11:46 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°64   Marquer comme non lu.
Onur Ecrit le: Vendredi 23 juillet 2004 à 12:04 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


pour la lecture oui.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°65   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 23 juillet 2004 à 16:47 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  


geogeo :
Kevin Kofler :
Tu ne comprends pas: le problème est que l'interpréteur prend trop de place et prendra toujours trop de place. :(


Ouai bah je peux pas faire mieux. :(

Bah si, la compilation native...
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°66   Marquer comme non lu.
geogeo Ecrit le: Samedi 24 juillet 2004 à 18:23 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Comment ça?

J'ai une liste de fonctions qui se présentent sous la forme:

const char *GFA_TableFuncs_A [] = {};
const char *GFA_TableFuncs_B [] = {};
const char *GFA_TableFuncs_C [] = {};
...


Je voudrais créer une autre liste qui permette d'accèder à la liste des fonctions suivant un index. 0 pour A, 1 pour B... Ensuite pouvoir parcourir simplement la liste des fonctions voulue.
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°67   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 24 juillet 2004 à 19:01 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  


geogeo :
Comment ça?

Ben, si tu utilisais du code 68k natif plutôt que du bytecode, tu n'aurais pas le problème de la taille de l'interpréteur.

J'ai une liste de fonctions qui se présentent sous la forme:

const char *GFA_TableFuncs_A [] = {};
const char *GFA_TableFuncs_B [] = {};
const char *GFA_TableFuncs_C [] = {};
...


Je voudrais créer une autre liste qui permette d'accèder à la liste des fonctions suivant un index. 0 pour A, 1 pour B... Ensuite pouvoir parcourir simplement la liste des fonctions voulue.

Tu veux un tableau de pointeurs vers des tableaux de pointeurs.
const char *(*GFA_TableFuncs [])[] = {&GFA_TableFuncs_A, &GFA_TableFuncs_B, &GFA_TableFuncs_C, ...};

[EDIT: Il manquait des &. Sans ça, tu as des warnings de types de pointeurs incompatibles.]
-Edité le Samedi 24 juillet 2004 à 21:08 par Kevin Kofler-
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°68   Marquer comme non lu.
geogeo Ecrit le: Samedi 24 juillet 2004 à 20:53 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ben, si tu utilisais du code 68k natif plutôt que du bytecode, tu n'aurais pas le problème de la taille de l'interpréteur.


Je ne comprend pas, je parle de la taille de l'executable, la génération du code par l'interpréteur n'a rien a voir avec sa taille. De plus actuellement il fait 17 Ko seulement pour remettre les données dans le bon ordre et les traiter. :)

Tu veux un tableau de pointeurs vers des tableaux de pointeurs.
const char *(*GFA_TableFuncs [])[] = {GFA_TableFuncs_A, GFA_TableFuncs_B, GFA_TableFuncs_C, ...};


OK merci beaucoup. :)
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°69   Marquer comme non lu.
Sasume Ecrit le: Samedi 24 juillet 2004 à 21:15 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Kevin te dit simplement que si tu faisais une compilation entière (cad jusqu'à générer de l'ASM), tu n'aurais pas besoin d'interpréteur (puisque le processeur saurait le faire à ta place) donc tu ne perdrais pas la place que prendra ton interpréteur.
    
./Post n°70   Marquer comme non lu.
geogeo Ecrit le: Samedi 24 juillet 2004 à 21:20 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


lol c'est pas si simple que ça. Mais normalement à partir des tokens il sera possible de générer un code en asm. Ensuite un interpréteur de 65 Ko c'est pas la mort, un secteur en ROM et le tour est joué.
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°71   Marquer comme non lu.
Sasume Ecrit le: Samedi 24 juillet 2004 à 21:20 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

C'est assez compliqué de générer du bon code ASM, je n'ai pas dit le contraire...
Ça rajoute une étape dans ton compilo.
    
./Post n°72   Marquer comme non lu.
geogeo Ecrit le: Dimanche 25 juillet 2004 à 14:54 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Comment selon vous le tag virgule est-il géré? Je parle surtout de la partie remise en ordre de la pile d'expressions, genre passer de :

Func Func 2+3,5,Func 3
en
2 3 + Func , 5 , 3 Func Func
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°73   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 26 juillet 2004 à 01:09 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  


Il n'y a pas de tag virgule, il y a un END_TAG pour la fin de la liste d'arguments, et sinon les arguments se suivent un après l'autre.
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°74   Marquer comme non lu.
geogeo Ecrit le: Lundi 26 juillet 2004 à 12:18 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


je sais mais je donne un exemple:

I = Func Func I+50, M par exemple
Je transforme ça en:

I I 50 + , M Func Func =

J'avais pensé à une pile d'arguments c'est à dire que avant la première virgule on a I 50 + le calcul est effectué est le résultat est stocké dans la pile d'argument car on a juste une virgule après, ensuite on arrive à la fonction qui empile dans la pile d'arguments M, j'execute Func qui efface la pile d'arguments et ainsi de suite. Mais là je gère virgule comme un TAG, autrement ça fonctionne comment?
-Edité le Lundi 26 juillet 2004 à 12:20 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°75   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 26 juillet 2004 à 12:35 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  


I END_TAG M I 50 + Func Func =
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°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
    
  :: Index » Forum Ti68K » Projets » GFA Basic oncalc (128 réponse(s))
Pages : 4/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 44.62ms avec 18 requetes