a commencé en 2014 et revient après une courte absence. Les fonctions actuelles permettent déjà de tester beaucoup de programmes Basic !
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.
Citer : Posté le 11/11/2018 21:34 | #
C'est normal si tous les liens sont des liens dev. ?
L'interpréteur devient intéressant, serait-il possible de marquer nos programmes compatibles ?
Citer : Posté le 11/11/2018 21:36 | #
Aha, non, c'est que je travaillais dessus (d'ailleurs j'ai bien mis le bordel) et j'ai pas pensé à ça quand j'ai pris les liens ! C'est corrigé !
Citer : Posté le 11/11/2018 21:47 | # | Fichier joint
Faudrait vérifier mais je pense que Krevo_ tient à son underscore
Ou pas...
EDIT : 666 points
Citer : Posté le 11/11/2018 22:08 | #
J'ai hésité en fait, mais je crois l'avoir vu sans underscore sur le topic. Je modifierai si besoin
Citer : Posté le 11/11/2018 22:20 | #
Je ne tiens à rien...
Par contre qu'on me dise "ça devient intéressant", ça c'est top !
Citer : Posté le 11/11/2018 23:11 | #
Et du coup, quels sont tes prochains plans ? Est-ce que tu as testé des jeux "réels" dessus ? As-tu envisagé de décoder des fichiers g1m/g2m à l'occasion ?
Citer : Posté le 11/11/2018 23:45 | #
Une revue des projets presque vide *intéressant Krevo_ je le testerais la prochaine fois que je ferais un jeu en basic*
Je ferais un article par rapport à mon projet UnderCasio la prochaine fois
Citer : Posté le 11/11/2018 23:48 | #
Je ferais un article par rapport à mon projet UnderCasio la prochaine fois
Superbe !
Pour les articles, on doit écrire à partir de quel niveau d'importance ?
Citer : Posté le 12/11/2018 00:29 | #
Je ne pense pas qu'il y ai besoins forcement d'une grande importance même pour annoncer un projet on peut je crois
Citer : Posté le 12/11/2018 06:54 | #
Il n’y pas d’importance requise
Avant 2017 la rdp servait de panneau d’annonces : un projet de jeu mais aussi des demandes d’aide, un petit article pour annoncer la sortie prochaine d’un jeu...
Citer : Posté le 12/11/2018 07:28 | #
Le mieux c'est bien sûr quand il y a des images à montrer !
Citer : Posté le 12/11/2018 14:52 | #
Et du coup, quels sont tes prochains plans ?
- corriger les "khown problems" (j'ai ajouter une page html qui les listent ... mais j'ai pas encore uploadé sur le site de demo.)
- ajouter de nombreuse instructions manquantes (en commençant peut être par boucle For, GetKey pour les jeu, Plot x,y◢ (parce que j'vais des programmes basé sur ça), gérer les variable type "List ", DrawStat, .... voilà en gros peut être dans cet ordre mais je ne garantie pas que ça va se passer comme ça exactement)
Un moment le plan c'était d'avancer par rapport au tuto de ce site pour aller de + en + loin....
Est-ce que tu as testé des jeux "réels" dessus ?
Oui et non. "Calendrier" et "City" sont d'authentiques programmes qui ont tournés sur ma calculatrice il y a x années (bien bien avant le début du commencement du projet d'interpréteur). Il me manque le support de "Plot x,y,◢' pour faire tourner mon démineur
As-tu envisagé de décoder des fichiers g1m/g2m à l'occasion ?
Oui, à terme si on supporte 100% du jeu d'instruction (ou pas loin) rien n'empêcherai le chargement d'un fichier à ces formats.... raaahhh et puis même si on est pas à 100% le chargement d'un fichier contenant que des instructions supportés devrait marcher, ce serais génial.
Par contre, il me faudrait de la doc sur ces formats. Si tu as des liens, je suis preneur.
Citer : Posté le 12/11/2018 18:06 | #
Quelques projets qui pourraient t'intéresser :
- BIDE (https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?cat=6), en particulier pour l'encodage/décodage g1m
- C.Basic (https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14738), un interpréteur basic casio (ce que tu fais)
- B2C, encore un interpréteur/compilateur basic casio (par contre il est pas super avancé non plus, mais tu peux t'inspirer de la méthode de compilation) : https://www.planet-casio.com/Fr/forums/topic14447-1-B2C--Convertisseur-Basic-en-C.html
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 12/11/2018 18:20 | #
Un moment le plan c'était d'avancer par rapport au tuto de ce site pour aller de + en + loin....
C'est vrai que c'est pas une mauvaise idée ça !
Par contre, il me faudrait de la doc sur ces formats. Si tu as des liens, je suis preneur.
Cakeisalie5 a fait beaucoup de travail sur le sujet, j'ignore si c'est vraiment documenté. Je te conseille de le pinger sur le chat le jour où tu veux te pencher sur la question, tu gagneras beaucoup de temps.
Donc voilà ce que j'ai à te proposer, mais c'est en vrac :
Les sources de sa libcasio, qui supporte le format g[12][rm]
Index de la doc de SimLo (v20) qui contient le coeur des informations
- B2C, encore un interpréteur/compilateur basic casio (par contre il est pas super avancé non plus, mais tu peux t'inspirer de la méthode de compilation)
Oh non, pitié T_T De toute façon Krevo_ sait ce qu'est une grammaire formelle donc je doute qu'il veuille mettre les mains dans un bordel pareil. x)
D'ailleurs j'avais une question : étant donné que tu utilises un parser conventionnel (d'après ce que j'ai compris), comment vas-tu te débrouiller pour implémenter les fonctionnalités du Basic qui exposent les propriétés du bytecode ? Par exemple, le programme suivant qui est syntaxiquement invalide, mais marche.
Dsz A
WhileEnd
Citer : Posté le 12/11/2018 18:21 | #
Gloire à Krevo, il a sauvé la RdP
C'est super ! Mais quand le générateur de cours sera-t-il réparé ?
Une part des visiteurs de PC viennent uniquement pour ça...
Citer : Posté le 12/11/2018 18:25 | #
Il marche plus ?
https://tools.planet-casio.com/pcgenerator/index.php
(2ème résultat pour "planet-casio" d'ailleurs )
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 12/11/2018 18:30 | #
En fait, le générateur de cours a été purement et simplement supprimé. Pour plusieurs raisons : c'était un outil vieux, il ne valait pas (et je n'avais valu) les e-acts, et il nous attirait aussi une réputation d'inciter les élèves à tricher aux examens.
J'ai donc traqué à la main et retiré toutes les apparitions de l'outil sur le site, sauf - sauf celle que Zezombye a mis en lien, qui est sur le serveur de Ziqumu, et que personne ne peut donc toucher.
Citer : Posté le 12/11/2018 18:31 | #
Avec le (supposé) abandon du mode examen, faudrait tout de même le garder au cas où
(et les eacts sont malheureusement que dispos sur les graph 35 tweakées )
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 12/11/2018 18:41 | #
D'ailleurs j'avais une question : étant donné que tu utilises un parser conventionnel (d'après ce que j'ai compris), comment vas-tu te débrouiller pour implémenter les fonctionnalités du Basic qui exposent les propriétés du bytecode ? Par exemple, le programme suivant qui est syntaxiquement invalide, mais marche.
Dsz A
WhileEnd
J'ai pas dit que ça allait être "bug compatible" avec l'interpéteur des calculatrices. D'ailleurs rien ne dit que cet exemple marche sur tous les modèles à venir. Et puis le jour où il ne restera "que ça".... et puis c'est vrai qu'aujourd'hui même avec un "While", ça ne sautera pas le "WhileEnd" .... ou alors faut que je change mon implémentation du while ... (et puis j'ai un problème il est trop rapide actuellement).
Bon là, j'ai un stock de truc à faire pour pas mal de temps
Citer : 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...