Est-ce que je peux programmer en tel langage sur ma calto ?
Posté le 26/05/2016 14:36
Une question revient assez souvent quand quelqu'un commence à s'intéresser à la programmation sur calculatrice, et c'est celle dans le titre. Dans ce topic, je vais répondre à votre question.
Prenez du recul sur votre langage.
Tout d'abord, posez-vous la question suivante : mon langage est-il
compilé ou
interprété ?
S'il est
interprété, alors regardez s'il existe un addin interprétant votre langage. S'il n'y en a pas, alors c'est non.
S'il est
compilé, sachez que tout addin doit remplir des conditions assez particulières, dont celle d'avoir un header G1A, d'avoir une structure particulière... qui plus est, il faut vous poser les questions inhérentes à votre compilateur telles que : quid de l'allocation de mémoire ? De la communication avec le hardware ou avec l'OS ? Mais n'ayez pas peur, pour certains langages, d'autres ont déjà travaillé pour vous.
Certains langages peuvent être compilés ou interprétés. Le C par exemple dispose d'interpréteurs on-calc.
Dans tous les cas, que vous ayez besoin d'un addin ou que vous souhaitiez en produire un, il faut un OS qui accepte les addins. C'est bon par défaut pour les Graph 75/85/95, mais pour les Graph 35+, il faut
mettre à jour (tweaker) leur OS.
De même, les possibilités du Basic ont évolué au fur et à mesure du temps, et certaines fonctionnalités, possiblement utilisées dans les interpréteurs Basic, ne sont pas disponibles sur les anciens modèles : pensez à ça quand vous choisissez un interpréteur ou faites un programme Basic.
Aussi, si vous souhaitez produire un addin, vous devrez aussi apprendre
le problème SH3/SH4,
les syscalls... bref, vous apprendrez que programmer un addin pour calculatrices Casio, c'est beaucoup de bidouillage.
Petite liste de langages pour répondre à votre question :
-
Basic Casio :
Oui, évidemment.
Un interpréteur est présent de base sur la calculatrice.
(je sais bien que personne va demander ça, mais je le mets quand même)
-
C.Basic :
Oui, c'est fait pour !
C.Basic est un interpréteur Basic amélioré par
Sentaro21.
-
Lua :
Une variante, sur certains modèles uniquement.
Il existe
un interpréteur présent sur certains modèles.
-
Fortran :
Oui, sur Graph mono.
Avec le fxSDK et
fxtran de Potter360.
-
Python :
Oui, sur Graph 90+E et Graph 35+E II !
CASIO a repris MicroPython et l'a adapté sur Graph 90+E, voyez ça dans
cette news et
cette news. Zezombye a aussi
porté MicroPython sur les modèles monochromes supportant les add-ins autres que la Graph 35+E II.
-
Logo :
Oui, sur fx-92+ !
Voyez dans
cette news !
-
Malical :
Oui !
Le Malical est un langage interprété inventé spécialement pour les calculatrices fx-9860* (Graph 75/85/95 et 35+ tweakées). Tous les détails sur le langage et l'interpréteur
se trouvent ici.
-
Brainfuck : Aussi dingue que ça puisse vous paraître,
oui oui oui !
Il existe plusieurs interpréteurs codés en Basic Casio tels que
celui-ci ou
celui-là. (comme ils sont codés en Basic Casio, ils sont compatibles pour davantage de calculatrices)
-
MLC :
Hein ?
Oui vous savez,
ce langage dont tout le monde parle.
-
C/
C++ :
Yep !
Sous Microsoft Windows, il existe un SDK (logiciel + lib) pour produire des addins en C/C++, Intelligide en a fait
un tutoriel.
Pour Linux, Lephenixnoir a fait
super tutoriel pour installer les bons logiciels et vous apprendre à produire un addin à partir de code en C/ASM.
-
ASM :
'se trouve que oui
(Attention, je parle d'ASM pur, pas de l'ASM inline en C/C++ !)
Et effectivement, les outils que
le tutoriel de Lephenixnoir (cité précédemment) fait installer intègrent également un assembleur. Attention, les calculatrices ayant un processeur SH3/SH4, il vous faut apprendre
le langage assembleur approprié.
Sous le SDK, apparemment, on peut aussi avec des fichiers en
.src, mais ils utilisent la syntaxe de Renesas, qui est légèrement différente de celle de GCC.
-
Objective-C,
Objective-C++,
Fortran,
Go,
Ada,
D :
Apparemment, partout
C'est
le même tutoriel de Lephenixnoir qui vous permet d'installer un cross-compilateur GCC compilant des codes en ces langages.
Attention cependant : à l'étape 4 (configuration de gcc), il faudra ajouter votre/vos langage(s) à la commande, par exemple, pour supporter l'Ada et le D . Sous GNU/Linux :
$ ../gcc-5.3.0/configure --target=sh3eb-elf --prefix="$HOME/opt/sh3eb-elf" --disable-nls --enable-languages=c,c++,ada,d --without-headers
Intel a fait
l'équivalent du tutoriel de Lephé pour MS-Windows.
-
CHIP-8/
Super CHIP-8 :
Eh oui Jamy !
Grâce à
ce superbe addin de Kucalc.
Et les autres langages ?
Si je ne les cite pas, c'est qu'ils n'ont probablement pas d'interpréteur sur calculatrice/que personne n'a encore cherché/trouvé de moyen de les compiler pour produire un addin. Si vous êtes un spécialiste de ce langage et qu'il est compilé, rien ne vous empêche de chercher un moyen de l'adapter sur calculatrice et de le proposer ici.
N'oubliez pas que j'ai également pu me tromper et/ou omettre un langage. N'hésitez pas à poser vos questions en-dessous de ce topic.
Citer : Posté le 26/05/2016 14:53 | #
Pas trop mal comme tuto mais très mal présenté à mon goût, il faudrait que tu essayes de bien séparer chaque partie, mettre en valeur ce qui doit être mis en valeur, etc...
Citer : Posté le 26/05/2016 16:10 | #
Franchement, merci ! Cela va permettre aux nouveaux de se diriger selon leur matériel et leur connaissance! (Merci beaucoup pour le lien du C-Casio )
Citer : Posté le 26/05/2016 20:23 | #
J'ai aussi trouvé un interpréteur bf en c mais que pour classpad
ici
Ajouté le 26/05/2016 à 20:36 :
Les interpréteur pseudo-c on-calc:
Celui-ci exucute directement les .c -> là
Et lui nécessite une "compilation" -> here
Ajouté le 26/05/2016 à 21:35 :
Je déterre egalement ce programme de kucalc qui permet d'executer du chip-8 et super chip-8 sur sa casio. voila
Après j'ai aussi vue du MLC pour les graph 100(+) voici
Et un projet de kucalc pour le porter sur g85, mais le lien du git est mort...
Citer : Posté le 27/05/2016 22:06 | #
T'as oublié tous les langages pour lesquels on peut trouver un compilateur. Rien que pour gcc, ça inclut ada, go, fortran, et quelques autres.
Citer : Posté le 27/05/2016 22:09 | #
Le souci avec ça, c'est que la principale cible de ce topic a besoin de tutoriels et de liens pour installer un compilateur, et que pour ces langages (à moins de compléter ton tutoriel avec des mentions à ces langages pour l'option correspondante), beh... c'est peut-être pas une bonne idée x)
Mon blog ⋅ Mes autres projets
Citer : Posté le 27/05/2016 22:10 | #
Oh ben je peux ajouter deux lignes au tuto de compilation de gcc si ça t'arrange ! Et puis ça permettrait de compléter ton post.
Ajouté le 27/05/2016 à 22:12 :
Done.
Citer : Posté le 27/05/2016 22:28 | #
Topic édité, et pour être sûr, j'en ai même rajouté une couche, ils ne peuvent pas passer à côté
Mon blog ⋅ Mes autres projets
Citer : Posté le 27/05/2016 22:29 | #
Ah, voilà qui semble bien exhaustif tout de suite
Citer : Posté le 28/05/2016 09:01 | #
@Cake : quand tu parles de 'ASM : Sous Linux uniquement.' tu parles pas de ce que l'on peut faire avec un .s puis un .h associé ?
Citer : Posté le 28/05/2016 10:47 | #
C'est indiqué juste en-dessous : "attention, je ne parle pas d'ASM inline".
Mon blog ⋅ Mes autres projets
Citer : Posté le 28/05/2016 12:16 | #
Hey, c'est possible d'installer GCC sous windows (ça s'appelle mingw), donc c'est pas exclusif à linux
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 28/05/2016 12:33 | #
Si tu as le lien vers un tutoriel (sur PC/spécifique à un cross-compilo sh3 de préférence), je veux bien le mettre dans le tutoriel
Bon, j'ai rajouté une mention à ça (en en profitant pour lancer une petite pique à Windows, comme d'habitude).
Mon blog ⋅ Mes autres projets
Citer : Posté le 28/05/2016 14:04 | #
Au passage, on peut programmer en assembleur sous le SDK de Casio. Il faut cependant nommer les fichiers .src, et utiliser la syntaxe de Renesas.
Citer : Posté le 28/05/2016 14:14 | #
Je l'ajoute
Mon blog ⋅ Mes autres projets
Citer : Posté le 29/05/2016 17:47 | #
Utiliser MinGW, c'est contraire à la morale. Tu monte pas un volant Peugeot sur un Porshe, là c'est pareil. x)
Citer : Posté le 30/05/2016 20:15 | #
Techniquement c'est plutôt dans le sens de monter un volant de Porsche sur une Peugeot qu'il faut le voir je crois.
Mais oui, si on est assez motivé / s'y connaît assez pour utiliser Mingw et se lancer dans une cross-compilation avec, en général, envisager de passer sous un gnunux n'est que logique je pense.
Citer : Posté le 25/04/2018 21:20 | #
Il serait temps d'ajouter le Python à cette liste. @Cakeisalie5 ?
Citer : Posté le 25/04/2018 21:21 | #
Punaise, j'avoue. Et en Logo aussi (enfin la dérivée pour fx-92+). J'édite ça de suite.
Mon blog ⋅ Mes autres projets
Citer : Posté le 25/04/2018 21:21 | #
Ouais enfin pour le moment ce sont les protos qui l'ont, nan ? On a pas encore de mise à jour publique qui contient l'interpréteur, si ? Et puis c'est hyper limité x)
Citer : Posté le 26/05/2018 19:05 | #
Si on mentionnait que le Malical a été porté pour SH4 ? Ça me paraît intéressant d'indiquer les plateformes disponibles de façon générale, notamment distinguer les calculatrices monochromes des couleurs !