Forums Casio - Projets de programmation

Index du Forum > Projets de programmation > Casio Basic Web Interpreter
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Posté le 29/08/2014 15:06

Casio Basic Web Interpreter :

Bonjour,

Je viens de m'inscrire pour vous faire part de la mise en ligne d'un "Casio Basic Web Interpreter" que j'ai commencé à écrire.
Je crois que le nom parle de lui-même.... c'est un interpreteur pour le langage basic des calculatrices Casio.
Le truc c'est que c'est un interpréteur en mode web, le rendu (=écran de la calculatrice) se fait sur un canvas HTML5.

Donc c'est ici => Casio Basic Web Interpreter

ATTENTION : ce que je partage avec vous est dans une version "alpha", il manque encore beaucoup de choses...
J'ai mis pleins de programmes en exemple.

En vrac la liste des instructions supportés :


Plot
PlotOn
PlotOff
PlotChg
PxlOn
PxlOff
PxlChg
PxlTest
Line
F-Line
Horizontal
Vertical
Cls
ClrText
Isz
Dsz
Lbl
Goto
Prog
Return
Mcl
Range
ViewWindow
Locate
Text
expr->variable
expr->variableStart~variableEnd
variable
"string"
?->variable
"string"?->variable
Ran#
GetKey
Int
Intg
Frac
Deg
Rad
Grad
sin
cos
tan
Rec
Pol
+
-
*
/
=> (If)
If/Then/Else/IfEnd
And/Or/Xor/Not
<=
>=
=
<> (or !=)
<
>
(expr)
-expr
Do/LpWhile
While/WhileEnd


J'ai mis les sources sur mon gitlab.

A bientôt.
Krevo_



Lephenixnoir
Hors ligne
Administrateur
Points: 13069
Défis: 136
Message
Dernier message de la page précédente :Posté le 29/08/2014 15:54 |
Il y a quelques différences avec la police d'origine aussi.
Si ça t'intéresse, il existe un pdf avec toute la police au pixel.
----------------------------------
Rise.



Pages: Précédente | 1, 2, 3, 4 | Suivante

Scientifix
Hors ligne
Membre
Points: 762
Défis: 30
Message
Citer : Posté le 29/08/2014 16:43 | #
Tu comptes présenter une version bêta quand ?
Si tu veux tu peux nous faire part de l'avancement de ton projet dans la revue des projet
----------------------------------
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 29/08/2014 16:57 | #
alpha, bêta, ... c'est juste des noms. Après ça dépend ce que l'on met derrière.
Je compte rajouter des instructions au fil de l'eau .... et vous tenir au courant de semaine en semaine.

J'ai une vague "roadmap" en tête qui ressemble à ceci (dans l'ordre ou presque) :

- une réelle distinction écran texte / écran graphique (parce que là les chaines de caractères imprimés et les plot/line se superpose sur le même écran)
- un scroll de l'écran texte (l'ajout d'une ligne doit faire monter ce qu'il y avait déjà) v0.1.3
- ajout de ? pour recevoir de l'input utilisateur v0.1.5
- ajout de [EXE] (touche "entrée"), pour valider son input v0.1.5
- ajout pause affichage : ◢
- ajout de [EXE], pour continuer quand c'était en pause
- ajout déplacement curseur (j'ai de vieux programme comme "Démineur" basé sur un Plot x,y◢ ) , valid et recup coordonnées
- ajout affectation à un ensemble de variable genre 1->A~Z
- gestion programmes / sous-programmes (appel "Prog x", Return, ...)
- ....

C'est pas les tâches qui manquent.
Scientifix
Hors ligne
Membre
Points: 762
Défis: 30
Message
Citer : Posté le 29/08/2014 17:04 | #
Super !! le plus important c'est que toutes les commandes de programmation soient supportées par ton interpréteur et que l'interface soit la plus pratique possible pour la programmation on PC.
Sur le côté de l'écran de saisi, tu pourrais mettre des icônes de caractères pour qu'on puisse directement cliquer dessus afin qu'ils soint ajoutés au code. Ou des petits menu comme ceux accessibles sur la calculatrice ...
En tout cas, continu c'est super
----------------------------------
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Silaxe
Hors ligne
Membre
Points: 809
Défis: 12
Message
Citer : Posté le 29/08/2014 17:10 | #
Est-ce que les fonctions et l'affichage graphique ont la même vitesse que sur calculatrice?
----------------------------------
Lephenixnoir
Hors ligne
Administrateur
Points: 13069
Défis: 136
Message
Citer : Posté le 29/08/2014 17:11 | #
Le prog2 a plutôt une vitesse semblable... ce serait vraiment pratique ça.
----------------------------------
Rise.
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 29/08/2014 17:48 | #
J'ai remarqué un bug (au moins sous Chrome) si je clique plusieurs fois sur "prog 2" ça accélère l'execution ... pour l'instant je vous le laisse comme ça.

A la base j'ai mis un setTimeout(...) javascript avec 10ms, ce qui en théorie nous donne 1 instruction executés toutes les 10ms, soit environ 100 instructions par seconde.

A terme, je mettrais des boutons de réglages de la vitesse d'execution.
Lephenixnoir
Hors ligne
Administrateur
Points: 13069
Défis: 136
Message
Citer : Posté le 29/08/2014 18:12 | #
Ben oui parce que tu ajoutes des timeout() en différé...
----------------------------------
Rise.
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 29/08/2014 18:38 | #
Lephenixnoir a écrit :
Ben oui parce que tu ajoutes des timeout() en différé...


+1
Purobaz
Hors ligne
Membre d'honneur
Points: 2690
Défis: 110
Message
Citer : Posté le 29/08/2014 19:25 | #
Nice
----------------------------------
I'll be back !
pour plus de fun
mes programmes fun
de technique
mes projets
et de Swag
les projets que je soutiens
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 31/08/2014 22:14 | #
Dernières modifs :
1. J'ai désactivé les multiplications sans opérateur * car cele faisait un bug : "B-2" était reconnu comme "B*-2" ce qui est plutôt embêtant.. j'avais modifier un peu vite la grammaire, cela nécessite + d'attention. J'y reviendrais.
2. Les goto vers un label postérieur (c'est à dire non encore rencontré) ne marchaient pas. Ceci est corrigé. Ça manque encore de msg d'erreurs clair en règle générale....


Ajouté le 04/09/2014 à 14:48 :
J'ai mis en ligne une version v0.1.5 avec :


?->var
"chaine"?->var


J'ai ajouté :
- un bouton "Stop" à coté du bouton "Execute"
- un lien vers une liste d'instructions déjà implémentées.

Ajouté le 05/11/2018 à 22:53 :
Bonjour,

Après une longue ... très longue pause, j'ai repris un peu le développement de mon programme.
Toujours situé à l'adresse http://basic.crevola.org/.

Je viens de rajouter :
- la multiplication sans opérateur * (exemple: 2B, 5(3+1), ....)
- 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 des exemples provenant de célèbre(s) site(s) web )

(Problèmes actuels :
- les réponses de type "chiffre" devraient être alignés à droite de l'écran et non à gauche
- les "syntax errors" ne précisent pas l'emplacement de l'erreur.
- les boucles Do/LpWhile et While/WhileEnd ne respectent pas le timeout de 10ms .. et sont donc paradoxalement trop rapides.
- pleins d'instructions manquantes ... mais ça c'est normal car il reste du travail)
Lepianoteur
Hors ligne
Membre
Points: 179
Défis: 0
Message
Citer : Posté le 05/11/2018 23:11 | #
Génial si tu avance encore sur ton projet fait le savoir c'est intéressant
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Lephenixnoir
Hors ligne
Administrateur
Points: 13069
Défis: 136
Message
Citer : Posté le 06/11/2018 07:18 | #
Oh j'y repensais il n'y a pas si longtemps, joli hasard ! xD

Effectivement c'est une belle machinerie. *-* Je n'arrive pas à valider les entrées avec "?", comment faut-il s'y prendre ?
----------------------------------
Rise.
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 06/11/2018 07:59 | #
Merci à tous pour vos commentaires, remarques et encouragements.

Lephenixnoir a écrit :
. *-* Je n'arrive pas à valider les entrées avec "?", comment faut-il s'y prendre ?


Normalement, tu dois taper tes chiffres puis faire 'Entrée' sur ton clavier. Si vraiment ça marche pas, j'enquêterai ..
Lephenixnoir
Hors ligne
Administrateur
Points: 13069
Défis: 136
Message
Citer : Posté le 06/11/2018 08:16 | #
Eh bien, ici dans Firefox 63 sous Linux, ça ne marche pas il semblerait.

Si ça peut t'aider, chaque fois que j'entre un chiffre ou que j'appuie sur Entrée, la console affiche une erreur ReferenceError: event is not defined dans le fichier cbi.js, ligne 85 (je suppose qu'il y a un mélange avec e, enfin j'ai déjà rencontré ça...). Les chiffres sont écrits quand même, mais Entrée ne marche pas.
----------------------------------
Rise.
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 06/11/2018 09:11 | #
Ok, merci des précisions. A l'instant, Firefox 63 sur Windows 10 même problème. (Ok sous Chrome et Edge) Je vais arranger ça...

Ajouté le 06/11/2018 à 09:24 :
... ok j'ai corrigé le bug. Merci pour ce retour. Effectivement, c'était n'importe quoi (mélange entre e et event)
Kikoodx
Hors ligne
Membre
Points: 790
Défis: 7
Message
Citer : Posté le 06/11/2018 12:35 | #
Ça me donne envie d'essayer...
Le lien est down ?
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Krevo_
En ligne
Membre
Points: 49
Défis: 0
Message
Citer : Posté le 06/11/2018 12:57 | #
Kikoodx a écrit :
Ça me donne envie d'essayer...
Le lien est down ?


En principe non, c'est pas down. Le lien c'est toujours http://basic.crevola.org/
Lephenixnoir
Hors ligne
Administrateur
Points: 13069
Défis: 136
Message
Citer : Posté le 06/11/2018 12:59 | #
C'est mieux, bien joué !
----------------------------------
Rise.
Kikoodx
Hors ligne
Membre
Points: 790
Défis: 7
Message
Citer : Posté le 06/11/2018 13:31 | #
Bon...
Sur mon téléphone ça me renvoie ERR_NAME_NOT_RESOLVED
Je vais essayer sur mon RPi

Ajouté le 06/11/2018 à 13:46 :
Ne fonctionne pas sur mon Raspberry Pi non plus...
Je pense que je suis cassé
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Hackcell
Hors ligne
Membre
Points: 886
Défis: 6
Message
Citer : Posté le 06/11/2018 18:51 | #
Sur mon tel sa marche bien... T'utilise un vrai navigateur ??
----------------------------------
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐

Pages: Précédente | 1, 2, 3, 4 | Suivante

Index du Forum > Projets de programmation > Casio Basic Web Interpreter

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