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 - Projets de programmation


Index du Forum » Projets de programmation » Casio Basic Web Interpreter
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Casio Basic Web Interpreter

Posté le 29/08/2014 15:06

Je vous présente ici mon projet "Casio Basic Web Interpreter" qui a débuté en 2014 et dont le développement se poursuis encore actuellement.

Il s'agit d'un interpréteur 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 :

[color1] Plot
[color1] PlotOn
PlotOff
PlotChg
[color1] PxlOn
PxlOff
PxlChg
PxlTest
[color1] Line
[color1] [sketchMode2] F-Line
[color1] [sketchMode2] Horizontal
[color1] [sketchMode2] Vertical
[color1] [sketchMode2] Circle
Plot/Line-Color color1
S-L-Normal
S-L-Dot
S-L-Broken
S-L-Thick
S-L-Normal
S-L-Thin
Cls
ClrText
ClrGraph
BG-Pict
BG-None
StoPict
RclPict
AxesOn
AxesOff
LabelOn
LabelOff
Isz
Dsz
Lbl
Goto
Prog
Return
Stop
Mcl
Range
ViewWindow
Menu
Locate
Text
expr->variable
expr->variableStart~variableEnd
variable
"string"
?->variable
"string"?->variable
Ran#
RanInt#
GetKey
MOD(
Int
Intg
Frac
Deg
Rad
Grad
sin
cos
tan
Rec
Pol
Ans
+
-
*
/
=> (If)
If/Then/Else/IfEnd
<=
>=
=
<> (or !=)
<
>
And/Or/Xor/Not
(expr)
-expr
Do/LpWhile
While/WhileEnd
For/Next
Break

{1,2,3,4}->List n
List n->List m
List Ans
x->Dim List n
Dim List n
Filen
Seq(
x->List n[expr]
List n
List n[expr]
ClrList
ClrList n
Sum list
Prod list
Mean(list
Median(list
Max(list
Min(list
SortA(list
SortD(list
Fill(value,list)
Augment(list,list)
Cuml list
?List list
Percent list
RanInt#(min,max,nb)
RanList#(int)

[[1,2,3][4,5,6]...]->Mat n
Mat n
Mat Ans
{l,c}->Dim Mat n
Dim Mat i
x->Mat n[expr,expr]
Mat n[expr,expr]
Mat n->Mat m

1 color can be Black, Blue, Red, Magenta, Green, Cyan or Yellow
2 sketchMode can be SketchNormal, SketchThick, SketchBroken, SketchDot, SketchThin


Vous trouverez les sources sur GitHub.

A bientôt.
Krevo_


1, 2, 3, 4 ··· 7, 8, 9 Suivante
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 29/08/2014 15:09 | #


Super merci !
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 29/08/2014 15:09 | #


Hey, c'est du bon boulot !
Bienvenue à toi Krevo_, et bravo

Malgré que je ne voie pas spécialement l'intérêt d'éxécuter du Basic Casio sur un ordinateur...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 29/08/2014 15:09 | #


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
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 29/08/2014 15:10 | #


Si, on peut programmer en basic sur FA_124 sans devoir transférer le programme à la calculatrice à chaque changement pour tester l'effet rendu.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 29/08/2014 15:11 | #


Au contraire Lephe, sur un ordi on gère beaucoup mieux le code et tout est plus propre, on s'y retrouve mieux (meilleure vision d'ensemble).
Je trouve que c'est une super idée pour ma part
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
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

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


Ah oui tiens, je n'y avais pas pensé.
(Faut dire que je programme plus en Basic depuis longtemps aussi. ^^' )

Tu l'as programmé en JavaScript ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 29/08/2014 15:13 | #


Lephenixnoir a écrit :
Ah oui tiens, je n'y avais pas pensé.
(Faut dire que je programme plus en Basic depuis longtemps aussi. ^^' )

Tu l'as programmé en JavaScript ?

On dirait, ou alors du ajax.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 29/08/2014 15:13 | #


@Legolas : on peut exécuter le programme qu'on est en train de taper sur fa 124 ?
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
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 29/08/2014 15:13 | #


Scientifix a écrit :
@Legolas : on peut exécuter le programme qu'on est en train de taper sur fa 124 ?

Non.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 29/08/2014 15:14 | #


Rhaaaaa !!!
Pas de boucles avec les labels ! :kill:

Mais sinon c'est sympa
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 29/08/2014 15:15 | #


Parmi les buts :
- faire revivre d'ancien programmes que j'avais écrit par le passé
- "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 (j'ai oublié de mentionné que j'ai utilisé "JS/CC" comme outil pour faire ma grammaire et générer le parseur)

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 29/08/2014 15:17 | #


Certaines expressions génèrent des erreurs de syntaxe, comme
.5(1000)->A
(la flèche non transformée bien entendu).
Par contre le niveau maximal de parenthèses est infini au du moins supérieur à 240, c'est appréciable

Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

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


C'est une super idée maintenat il faut que ton Interpreter gère plus de code, car comme le dit Dark storm pas mal de truc manquent ... Mais t es sur la bonne voie, ton idée est énorme
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 ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 29/08/2014 15:19 | #


Dark storm a écrit :
Rhaaaaa !!!
Pas de boucles avec les labels ! :kill:

Mais sinon c'est sympa


Oui bien sûr, d'accord je n'ignore pas le "'GOTO Considered Harmful' ( Edsger Dijkstra).
Le lycée est loin et à l'époque il n'y avait que Lbl/Goto....
Donc j'ai codé ça d'abord (pour voir si mes programmes de l'époque pouvait être interprété).
Les autres boucles suivront...

Ajouté le 29/08/2014 à 15:22 :
Ajouté le 29/08/2014 à 15:21 :
Lephenixnoir a écrit :
Certaines expressions génèrent des erreurs de syntaxe, comme
.5(1000)->A
(la flèche non transformée bien entendu).
Par contre le niveau maximal de parenthèses est infini au du moins supérieur à 240, c'est appréciable


Parce que ça ne gère pas les multiplications sans l'opérateur *
Actuellement tu est obligé de faire
.5*(1000)->A
qui marche très bien.

J'ajoute que les A[1], A[2], ... Z[50] sont gérés aussi.
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 29/08/2014 15:25 | #


Le souci c'est que si tu ne respectes par strictement toute la syntaxe de l'interpréteur de Casio, on ne pourra pas exécuter les programmes comme on veut. De plus, comme on cherche souvent à gagner des octets on omet constamment le symbole de multipliation d'il y a des parenthèses.

Au fait, tu devrais te présenter.

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 29/08/2014 15:29 | #


Lephenixnoir a écrit :
Le souci c'est que si tu ne respectes par strictement toute la syntaxe de l'interpréteur de Casio, on ne pourra pas exécuter les programmes comme on veut. De plus, comme on cherche souvent à gagner des octets on omet constamment le symbole de multipliation d'il y a des parenthèses.


Mais j'ai bien l'intention que l'interpreteur puisse interpreté des programmes existants sans être obligé de les modifié.
Je connais bien ce raccourci ... surtout à l'époque de la fx7000G avec ses 422 pas seulement ! Mais c'est une histoire qui ira bien dans ma présentation... à venir.



Ajouté le 29/08/2014 à 15:32 :
MAJ : Vas y réessaye tes multiplications, j'ai modifié la grammaire à l'instant :-)
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 29/08/2014 15:33 | #


C'est mieux comme ça

Bon courage pour continuer.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 29/08/2014 15:34 | #


Est ce que tu pourrais faire un genre de catalogue avec les commandes ? Ça serait génial 8)
Au passage j'aime bien ton Prog 2
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
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 29/08/2014 15:44 | #


Super projet je te soutiens à fond !!!
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 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.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
1, 2, 3, 4 ··· 7, 8, 9 Suivante

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 99 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