Forum Casio - Autres questions


Index du Forum » Autres questions » Un interpréteur BASIC casio
DisperseurHors ligneMembrePoints: 1186 Défis: 0 Message

Un interpréteur BASIC casio

Posté le 16/04/2018 16:13

Bonjour à tous,

Après en avoir parlé brièvement avec Lephénixnoir sur mon topic "une question comme ça", je crée ce topic consacré à la création d'un interpréteur BASIC casio.
Voici la progression actuelle:

Commandes
   20%


Editeur
   60%


Vitesse/possibilités
   10%


Comme vous pouvez le voir, ce projet est plutôt avancé mais pas trerminé .
Pour que vous puissiez vous en rendre compte, je vous met en lien le .rar avec le programme (+liste d'édition prète) et la lisre des commandes en pdf. Vous y trouverez aussi un exemple de programme et toutes les explicatios nécéssaires pour faire un premier programme. Si vous avez des questions, n'hésitez pas .

Si vous avez une/des idée(s) pour faire avancer le projet, votre participation sera la bienvenue.

Sur ce, A+

Fichier joint


LephenixnoirHors ligneAdministrateurPoints: 13958 Défis: 136 Message

Citer : Posté le 16/04/2018 17:13 | #


Ton interpréteur est très proche du niveau assembleur. As-tu pensé à introduire des commandes type For/Done en utilisant une pile pour stocker ton contexte d'exécution ?

Tu peux aller assez loin rien qu'avec une idée de ce type (et faire des trucs qui n'existent pas en Basic, genre des fonctions récursives...)
DisperseurHors ligneMembrePoints: 1186 Défis: 0 Message

Citer : Posté le 16/04/2018 17:15 | #


Ah, je pensais pas, je suis bien parti alors ?
Au fait, tu dis:
Lephenixnoir a écrit :
en utilisant une pile pour stocker ton contexte d'exécution ?


Tu veut dire quoi, je suis pas sur de comprendre ?
Fonctions 3D
Meilleurs programmes
Cliquer pour enrouler
LephenixnoirHors ligneAdministrateurPoints: 13958 Défis: 136 Message

Citer : Posté le 16/04/2018 18:55 | #


Jette un oeil par ici :

Pile (informatique) sur Wikipédia

Imagine que tu as un If (appelons-le if0) qui contient un For (nommé for1), qui contient lui-même un If (surnommé if2), alors ta pile c'est (de haut en bas) [if2, for1, if0]. Et tu vois que quand on ouvre un bloc on ajoute quelque chose au sommet, quand on ferme un bloc on retire le sommet... cela correspond aux opérations élémentaires de la pile.

C'est un concept assez important que les contextes s'empilent.
NinestarsHors ligneMembrePoints: 2148 Défis: 22 Message

Citer : Posté le 16/04/2018 20:56 | #


Sympa, tu as implémenté pas mal de fonctions. Mais comment gérer deux variables du coup ?
D'ailleurs il y a moyen de lire un programme basic depuis un add-in ?
LephenixnoirHors ligneAdministrateurPoints: 13958 Défis: 136 Message

Citer : Posté le 16/04/2018 23:27 | #


Ninestars a écrit :
D'ailleurs il y a moyen de lire un programme basic depuis un add-in ?

Si tu parles d'en lire les contenus, oui. Il faut manipuler un peu de MCS mais ça se fait.

Si tu parles de l'exécuter, on peut tout au plus passer la main à l'application PROG à la PRGM2. Ça ne laisse pas beaucoup de contrôle à l'add-in.
DisperseurHors ligneMembrePoints: 1186 Défis: 0 Message

Citer : Posté le 17/04/2018 09:09 | #


Pour les deux variables, je pensais au début, à ajouter une ligne aux commandes qui commandent la variable À et qui accepterais les variables de A à Z et demanderais le code 1 à 26 pour chaque lettre. Je pense le mettre dans une maj mais ce n'est pas sur.
Fonctions 3D
Meilleurs programmes
Cliquer pour enrouler
NinestarsHors ligneMembrePoints: 2148 Défis: 22 Message

Citer : Posté le 17/04/2018 22:51 | #


Ok Lephé, donc c'est techniquement possible de refaire un interpreteur en C de code ecrit en Basic alors.

Après comment gérer sur quelle variable faire le calcul ? Ça pose quelques difficultées
LephenixnoirHors ligneAdministrateurPoints: 13958 Défis: 136 Message

Citer : Posté le 18/04/2018 10:01 | #


Ok Lephé, donc c'est techniquement possible de refaire un interpreteur en C de code ecrit en Basic alors.

On peut même faire une application PRGM+ qui soit en tout point identique à PRGM mais (on peut l'espérer) bien plus rapide.
DisperseurHors ligneMembrePoints: 1186 Défis: 0 Message

Citer : Posté le 18/04/2018 16:57 | #


C'est une idée de projet après Gint non ?

Ajouté le 18/04/2018 à 17:08 :
Pour reprendre le premier commentaire de Lephenixnoir,

A la base, je pensais faire un truc uniquement pour du calcul type fonction (en math)..
Fonctions 3D
Meilleurs programmes
Cliquer pour enrouler
LephenixnoirHors ligneAdministrateurPoints: 13958 Défis: 136 Message

Citer : Posté le 18/04/2018 17:17 | #


Ce serait un truc bien à faire, mais je ne suis pas le seul à avoir les compétences. D'autres seraient sûrement plus séduits.

Si tu savais, les maths ce n'est que sommes infinies et intégrales à paramètres...
NinestarsHors ligneMembrePoints: 2148 Défis: 22 Message

Citer : Posté le 18/04/2018 18:37 | #


Bha en fait, et je crois que Léphé là dit plus haut, tu as fait un émulateur style assembleur. C'est cool
DisperseurHors ligneMembrePoints: 1186 Défis: 0 Message

Citer : Posté le 18/04/2018 20:10 | #


Bof, pas plus que ça pour moi. J'ai juste appris le fonctionnement de ce truc.
Fonctions 3D
Meilleurs programmes
Cliquer pour enrouler

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 15 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd