Forums Casio - Autres questions

Index du Forum > Autres questions > Un interpréteur BASIC casio
Disperseur
Hors ligne
Membre
Points: 640
Défis: 0
Message
Posté le 16/04/2018 16:13

Un interpréteur BASIC casio :

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




Lephenixnoir
Hors ligne
Administrateur
Points: 12409
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...)
----------------------------------
Rise.
Disperseur
Hors ligne
Membre
Points: 640
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 ?
----------------------------------
Lephenixnoir
Hors ligne
Administrateur
Points: 12409
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.
----------------------------------
Rise.
Ninestars
Hors ligne
Membre
Points: 2052
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 ?
----------------------------------
Lephenixnoir
Hors ligne
Administrateur
Points: 12409
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.
----------------------------------
Rise.
Disperseur
Hors ligne
Membre
Points: 640
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.
----------------------------------
Ninestars
Hors ligne
Membre
Points: 2052
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
----------------------------------
Lephenixnoir
Hors ligne
Administrateur
Points: 12409
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.
----------------------------------
Rise.
Disperseur
Hors ligne
Membre
Points: 640
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)..
----------------------------------
Lephenixnoir
Hors ligne
Administrateur
Points: 12409
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...
----------------------------------
Rise.
Ninestars
Hors ligne
Membre
Points: 2052
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
----------------------------------
Disperseur
Hors ligne
Membre
Points: 640
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.
----------------------------------


Index du Forum > Autres questions > Un interpréteur BASIC casio

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

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd