Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » La revue des projets - 129
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

La revue des projets - 129

Posté le 11/11/2018 21:20

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 En ligne Administrateur Points: 24145 Défis: 170 Message

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...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 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).
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 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...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Massena En ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 13/11/2018 11:31 | #


Mais... le générateur de cours marche à nouveau ?
Je comprend plus rien...
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 13/11/2018 18:52 | #


Cette version-là a toujours marché.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 95 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