Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Casio Basic Web Interpreter
Krevo_Hors ligneMaître du PuzzlePoints: 171 Défis: 0 Message

Casio Basic Web Interpreter

Posté le 29/08/2014 15:06

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ées :


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

List :
{1,2,3,4}->List n
x -> Dim List n
Dim List n
Filen
Seq(
x->List[n][expr]
List[n][expr]
ClrList
ClrList n


J'ai mis les sources sur mon gitlab.

A bientôt.
Krevo_


Pages : Précédente1, 2, 3, 4, 5, 6Suivante
LephenixnoirHors ligneAdministrateurPoints: 14124 Défis: 136 Message

Citer : 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.
ScientifixHors ligneMembrePoints: 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_Hors ligneMaître du PuzzlePoints: 171 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.

Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
ScientifixHors ligneMembrePoints: 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
SilaxeHors ligneMembrePoints: 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?
LephenixnoirHors ligneAdministrateurPoints: 14124 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.
Krevo_Hors ligneMaître du PuzzlePoints: 171 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.
Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
LephenixnoirHors ligneAdministrateurPoints: 14124 Défis: 136 Message

Citer : Posté le 29/08/2014 18:12 | #


Ben oui parce que tu ajoutes des timeout() en différé...
Krevo_Hors ligneMaître du PuzzlePoints: 171 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
Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
PurobazHors ligneMembre d'honneurPoints: 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_Hors ligneMaître du PuzzlePoints: 171 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)
Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
LepianoteurHors ligneMembrePoints: 190 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
LephenixnoirHors ligneAdministrateurPoints: 14124 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 ?
Krevo_Hors ligneMaître du PuzzlePoints: 171 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 ..
Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
LephenixnoirHors ligneAdministrateurPoints: 14124 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.
Krevo_Hors ligneMaître du PuzzlePoints: 171 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)
Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
KikoodxHors ligneMembrePoints: 983 Défis: 7 Message

Citer : Posté le 06/11/2018 12:35 | #


Ça me donne envie d'essayer...
Le lien est down ?
2+2=5
Krevo_Hors ligneMaître du PuzzlePoints: 171 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/
Mon projet principal : Casio Basic Web Interpreter ou le basic Casio dans votre navigateur web
LephenixnoirHors ligneAdministrateurPoints: 14124 Défis: 136 Message

Citer : Posté le 06/11/2018 12:59 | #


C'est mieux, bien joué !
KikoodxHors ligneMembrePoints: 983 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é
2+2=5
HackcellEn ligneMembrePoints: 978 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édente1, 2, 3, 4, 5, 6Suivante

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