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_
Citer : Posté le 29/08/2014 15:09 | #
Super merci !
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
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...
Citer : Posté le 29/08/2014 15:09 | #
Super !
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
Tableau de variations
Equations Diophantiennes
Conversion d'un nombre décimal en fraction
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.
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
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 suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
Tableau de variations
Equations Diophantiennes
Conversion d'un nombre décimal en fraction
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 ?
Citer : Posté le 29/08/2014 15:13 | #
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.
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
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 suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
Tableau de variations
Equations Diophantiennes
Conversion d'un nombre décimal en fraction
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 ?
Non.
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 29/08/2014 15:14 | #
Rhaaaaa !!!
Pas de boucles avec les labels ! :kill:
Mais sinon c'est sympa
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)
Citer : Posté le 29/08/2014 15:17 | #
Certaines expressions génèrent des erreurs de syntaxe, comme
Par contre le niveau maximal de parenthèses est infini au du moins supérieur à 240, c'est appréciable
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 suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
Tableau de variations
Equations Diophantiennes
Conversion d'un nombre décimal en fraction
Citer : Posté le 29/08/2014 15:19 | #
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 :
Certaines expressions génèrent des erreurs de syntaxe, comme
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
J'ajoute que les A[1], A[2], ... Z[50] sont gérés aussi.
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.
Citer : Posté le 29/08/2014 15:29 | #
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 :-)
Citer : Posté le 29/08/2014 15:33 | #
C'est mieux comme ça
Bon courage pour continuer.
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 suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
Tableau de variations
Equations Diophantiennes
Conversion d'un nombre décimal en fraction
Citer : Posté le 29/08/2014 15:44 | #
Super projet je te soutiens à fond !!!
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
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.