Forums Casio - Actualités

Index du Forum > Actualités > La revue des projets - 129
Lephenixnoir
Hors ligne
Administrateur
Points: 13203
Défis: 136
Message
Posté le 11/11/2018 21:20

La revue des projets - 129 :

Bonsoir chers habitués et moins habitués. J'ai du retard sur la revue des projets d'aujourd'hui car il n'y avait pas d'article ; heureusement Krevo nous sauve la mise !

Aujourd'hui, on parle donc d'interpréteur Basic dans le navigateur ! Le projet d'interpréteur a commencé en 2014 et revient après une courte absence. Les fonctions actuelles permettent déjà de tester beaucoup de programmes Basic !


À toi la parole !

Krevo a écrit :
Bonjour,

Dans la série "des nouvelles d'anciens projets qui reprennent" (comme je l'ai lu dans une récente revue des projets), j'aimerais vous présenter ou représenter mon projet "Casio Basic Interpreter", qui devrais être prochainement renommé "Casio Basic Web Interpreter".

En effet, il s'agit d'un interpréteur du basic Casio que j\'ai écrit en javascript (en partant de “JS/CC” pour le parser) qui se présente sous la forme d'une page web avec votre programme dans un grand textarea et un rectangle représentant l'écran de la calculatrice sur lequel vous verrez le résultat de l'exécution de vos programme.

Comme c'est un projet en cours, toutes les instructions ne sont pas encore supportées. Cependant, les quelques programmes d'exemple, ainsi qu'un lien vers une liste de ce qui est déjà implémenté vous aideront.

Parmi les buts du projet :
- faire revivre d'ancien programmes que j'avais écrit par le passé (quand j\'étais au lycée) à un moment où je n\'avais plus de calculatrice sous la main
- "just for fun" (ça c'est une très bonne raison !!)
- perfectionnement en techno web : javascript / canvas
- explorer un peu le monde des parser/compilateur/interpreteur
… et pourquoi pas rendre interactif les exemples des tutoriels / manuels sur le basic.

Si je vous présente ce projet aujourd'hui c'est parce que j'ai récemment repris le développement en ajoutant des choses comme :
la multiplication sans opérateur (style "2AB")
les boucles Do/LpWhile et While/WhileEnd
l'interprétation des symboles ≥,≤,≠,◢,⇒ et → (ce qui vous laisse le choix d'utiliser ces symboles ou leurs équivalents textuels respectivement >=, <=, <>, _, => et -> .... et accessoirement permet de copier/coller directement des exemples provenant de planete-casio)
un 2e choix de combinaison de couleur pour l\'interface : bleu sur fond vert (en plus du noir sur fond blanc déjà existant)

Tout cela est disponible sur http://basic.crevola.org/

Beaucoup de choses restent encore à faire (instructions à supporter, interface à améliorer, ...), mais voilà le projet continue…

Krevo.

Merci pour ton article Krevo, et à la semaine prochaine !

Cette semaine, quatre programmes ont été publiés :
ZeldaGAME de Math680
SLOTGAME de CaptainLuigi
The Legend of Zelda: Forces of Ganon d'Aziog
Pixel de Mactul

Lire la revue précédente : La revue des projets - 128

Fichier joint



Lephenixnoir
Hors ligne
Administrateur
Points: 13203
Défis: 136
Message
Dernier message de la page précédente :Posté le 12/11/2018 18:45 |
Dans l'ensemble j'adhère à ton analyse, par contre ce n'est pas un bug ! C'est prévu pour faire efficacement des boucles. D'ailleurs Isz et Dsz sont dans le menu PRGM.JMP...
----------------------------------
Rise.



Pages: Précédente | 1, 2

Krevo_
En ligne
Membre
Points: 62
Défis: 0
Message
Citer : Posté le 13/11/2018 10:07 | #
Sinon, faut que je remodifie le parser un petit peu ... pour parser les lignes "While ..... " et "WhileEnd" séparemment. Je cogite je cogite .... je pense que ça doit être + comme Lbl/Goto (les compilateurs C et autre ne font rien d'autres que générer des sauts aux endroits voulus). Car sur les Goto, je saute bien l'instruction sur un Isz ou Dsz qui sort un 0. Et puis, ça devrais régler le problème de "survitesse" de mes boucles Do/LpWhile et While/WhileEnd. Il faut que je réflechisse calmement, bien tester tout ça.

Pour info, j'ai mis en ligne les "known problems", ainsi qu'un léger fix car qqun m'avait signalé qu'on ne pouvait pas répondre un nombre négatif sur un "?->A" par exemple (le "-" n'était pas accepter en frappe clavier).
Lephenixnoir
Hors ligne
Administrateur
Points: 13203
Défis: 136
Message
Citer : Posté le 13/11/2018 10:36 | #
Une autre possibilité qui me vient à l'idée serait d'implémenter le jump pendant une passe de génération de code, mais je suppose que tu n'as pas de telle passe ? (Interpréter l'arbre de syntaxe est plutôt agréable en général)

Parce que comme Isz et Dsz sautent en fait la prochaine instruction bytecode, tout peut arriver, y compris sauter des Next, des conditions à la , des Break, des assignements normaux...
----------------------------------
Rise.
Massena
Hors ligne
Community Manager
Points: 442
Défis: 3
Message
Citer : Posté le 13/11/2018 11:31 | #
Mais... le générateur de cours marche à nouveau ?
Je comprend plus rien...
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Lephenixnoir
Hors ligne
Administrateur
Points: 13203
Défis: 136
Message
Citer : Posté le 13/11/2018 18:52 | #
Cette version-là a toujours marché.
----------------------------------
Rise.

Pages: Précédente | 1, 2

Index du Forum > Actualités > La revue des projets - 129

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 60 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