Page 1 of 1

Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 29 Mar 2020, 17:27
by Zynk
Bonjour à tous,

Aujourd’hui j’ai le plaisir de vous présenter
le premiers convertisseur python vers Ti-Basic :
Py4calc


Py4Calc est un projet datant de 2008 initié par
Luke Bryan
qu’il a arrêté de développer en 2013 et que j’ai retrouvé il y a peu.

Je me suis donc permit de le dépoussiérer, de l’actualiser, et de le modifier quelque peu avec l’aide de Dogm afin qu’il puisse remarcher dans des conditions optimales et ainsi vous présenter
la version 2.0
.

Pour utiliser le logiciel c’est très simple :

- Lancez Py4CalcV2.exe
- Sélectionnez le script Python que vous souhaitez convertir
- Donner lui un nom
- Et enfin récupérer le programme Ti-basic dans le dossier, il ne vous reste plus qu’à l’introduire dans votre calculatrice via le
logiciel Ti-connect

Petit disclaimer :
le langage Ti-basic n’ayant pas les mêmes fonctions que le python, il est possible qu’il faille
simplifier le scripte python
comme par exemple avec les “ellif” à transformer en :

if <condition>:

...

else:

if <condition>:

...

else:



Mais ne vous inquiétez pas,
un message d’erreur
vous expliquera comment faire pour chaque cas :

Image

Par ailleurs, si vous rencontrer le moindre problème, bug, critique ou suggestion d’amélioration, n’hésitez pas à vous manifester dans ce topic et nous nous ferons un plaisir d’y répondre

Le lien vers l'archive :
http://ti-pla.net/a2618648

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 08:11
by LePetitMage
Le contraire serait utile aussi.
Vous prévoyez de le faire ?

Il va falloir que je me débrouille pour le faire fonctionner sur mac.

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 12:59
by Bisam
Serait-il possible d'avoir un aperçu un peu plus précis des capacités de ce convertisseur ?
Le python est beaucoup plus riche que le TI-Basic et il y a donc forcément des choses non prises en charge, mais pourrait-on savoir ce qui est pris en charge, exactement ?

Je suppose par ailleurs que l'on convertit seulement vers le TI-Basic pour TI-z80... est-ce prévu de proposer le TI-Basic pour TI-68k ou mieux pour Nspire ?

Cela serait vraiment un beau projet, surtout si on lui adjoint un convertisseur dans l'autre sens (plus utile de nos jours et plus facile !)

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 13:33
by Zynk
Bonjour a tous merci pour vos retours

LePetitMage wrote:Le contraire serait utile aussi.
Vous prévoyez de le faire ?

Il va falloir que je me débrouille pour le faire fonctionner sur mac.


Normalement pour mac (et pour linux) le .exe est censé fonctionner sans ajustement avec python 3.x mais je ne l'ai pas essayé n'aillant pas de mac :p
Si vous pouviez me faire un retour là-dessus cela m'intéresserait

Bisam wrote:Serait-il possible d'avoir un aperçu un peu plus précis des capacités de ce convertisseur ?
Le python est beaucoup plus riche que le TI-Basic et il y a donc forcément des choses non prises en charge, mais pourrait-on savoir ce qui est pris en charge, exactement ?

Je suppose par ailleurs que l'on convertit seulement vers le TI-Basic pour TI-z80... est-ce prévu de proposer le TI-Basic pour TI-68k ou mieux pour Nspire ?

Cela serait vraiment un beau projet, surtout si on lui adjoint un convertisseur dans l'autre sens (plus utile de nos jours et plus facile !)


Pour ce qui est de ces capacité c'est assez limiter pour l'instant (un gros programmes python ne marchera pas cela ce limite plus a un usage de petit programme scolaire) je vais essayer de dresser une liste relativement exhaustive de ce qui est pris en charge ou non

Effectivement pour l'instant c'est que pour du TI z80 pour les autres cela pourrait être possible mais je ne les connais pas du tout donc ce n'est actuellement pas prévus

Pour le convertisseur de ti basic vers python je vais m'en occuper de ça je vous tiens au courant de l'avancement de la suite de ce projet

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 14:48
by Dogm
Voici la liste des instructions prise en charge.

Le convertisseur prend en charge :

- les
boucles
(while et for)
- les
fonctions
: int(, float(, len(, random(), randint(, input(, print( et eval(
- les
constantes
: pi et e

Ainsi que les
fonctions mathématiques
:

- sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh
- sqrt(
- fabs(
- log(
- exp(
- floor(
- log10(


En revanche il affiche des
erreurs
lorsque :

- la fonction pow est utilisée
- l'opérateurs -= est utilisé
- des fonctions sont définies
- l'instruction open est utilisée
- le signe - est utilisé
- l'opérateur % (modulo) est employé (pas d'équivalent en Ti-basic)
- des instructions d'importation sont employés
- la condition elif est utilisée (le message d'erreur sera accompagné d'un texte qui vous suggérera un équivalent)

Ou des
messages
de
mise en garde
lorsque :

- des chaines de caractère de plus de 16 caractères sont employées (elle dépasse de l'écran)
- la commande \n pour le retour à la ligne est comprise dans une chaine de caractère (pas d'équivalent en Ti-basic)
- les blocs de documentation sous forme """ sont employés (pas d'équivalent en Ti-basic)

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 15:17
by LePetitMage
Il existe la fonction reste( en TI-Basic qui devrait être l'équivalent du % (modulo).

Et pour les instructions d'importations, il suffit de les ignorer, non ?

Pour les définitions de fonctions, un sous-programme devrait faire l'affaire.

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 15:35
by Bisam
"pow" n'est pas une commande en python, mais une fonction... et c'est simplement la fonction puissance (éventuellement modulo quelque chose). Il est facile de la convertir, me semble-t-il.

Les fonctions mathématiques en python, ainsi que les constantes
$mathjax$\pi$mathjax$
et
e
nécessitent une importation... donc il ne sert à rien de les convertir si tu ne gères pas les importations !

Les affectations condensées (du type +=, -=, *=, etc...) sont faciles à convertir également.

Enfin, tu as déjà trouvé comment gérer le "elif"... alors il suffit de le faire dans ton convertisseur, non ?

Pour les fonctions, malheureusement, c'est le gros problème du TI-Basic z80.... contrairement au Basic 68k ou Nspire.

Re: Py4Calc, le premier traducteur python vers Ti-Basic

Unread postPosted: 21 Apr 2020, 15:55
by Dogm
LePetitMage wrote:Il existe la fonction reste( en TI-Basic qui devrait être l'équivalent du % (modulo).


Okay merci on va modifier ça :#top#:.

Et pour les instructions d'importations, il suffit de les ignorer, non ?


J'ai dit des bêtises. Le programme les ignore déjà et affiche un message de mise en garde :), au temps pour moi.

"pow" n'est pas une commande en python, mais une fonction... et c'est simplement la fonction puissance (éventuellement modulo quelque chose). Il est facile de la convertir, me semble-t-il.

Les affectations condensées (du type +=, -=, *=, etc...) sont faciles à convertir également.

Enfin, tu as déjà trouvé comment gérer le "elif"... alors il suffit de le faire dans ton convertisseur, non ?


On va essayer de fixer tous cela, merci pour vos sugestions