π
<-
Chat plein-écran
[^]

QuickJS version alpha

Nouveautés, projets, mises à jour.

QuickJS version alpha

Unread postby parisse » 19 Feb 2021, 19:07

Je mets en ligne la version alpha d'un portage sur Nspire CX/CX II de QuickJS, un interpreteur JS ecrit par Fabrice Bellard qui est a la fois rapide, a jour, et assez complet pour faire des maths.
Il comporte des entiers et flottants multi-precision natifs et codes de maniere asymptotiquement optimale, ainsi qu'une petite librairie javascript (chargee par defaut) pour faire de l'arithmetique entiere, travailler avec des polynomes, des complexes et des matrices.
J'y ai ajoute deux commandes graphic.fillRect et graphic.setPixel pour benchmarker la fractale de Mandelbrot (fra(320,222,10)), il faut environ 5 secondes sur une CX II pour l'obtenir en 320x222 (en utilisant la symetrie par conjugaison), essentiellement indistingable du code natif actuel de KhiCAS, et nettement plus rapidement qu'avec MicroPython.
C'est une version standalone pour l'instant, j'envisage quand j'aurai du temps disponible son integration dans KhiCAS et Xcas pour permettre de travailler avec les 3 interpreteurs au choix (Xcas, JS et Python), comme dans Xcas pour Firefox ou TableaunoirXcas.

https://www-fourier.univ-grenoble-alpes.fr/~parisse/ti/qjscalc.tns
Source actuel du port https://www-fourier.univ-grenoble-alpes.fr/~parisse/ti/quickjs.tgz
QuickJS: https://bellard.org/quickjs/quickjs.html
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 79.8%
 
Posts: 3550
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: QuickJS version alpha

Unread postby critor » 19 Feb 2021, 21:40

Merci beaucoup pour nous avoir partagé cette excellente nouvelle.

On avait déjà Duktape comme interpréteur Javascript pour TI-Nspire :
viewtopic.php?t=16900
Mais non orienté pour faire des maths, et surtout plus maintenu depuis des années.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 44.2%
 
Posts: 41584
Images: 15119
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: QuickJS version alpha

Unread postby parisse » 20 Feb 2021, 08:16

J'ai choisi de porter quickjs plutot que de reprendre duktape pour plusieurs raisons: les maths bien sur, rajouter des entiers ou flottants multi-precision a duktape c'est du travail, mais il y a aussi le fait que duktape n'a pas de support pour les arguments par defaut dans les fonctions. Et puis l'accent mis sur l'optimisation, avec l'implementation d'algorithmes a base de FFT pour la multi-precision.
Par contre, je crains que QuickJS ne soit pas portable sur la Numworks, en raison des contraintes memoire tres fortes, en particulier au moment de l'interpretation du code de la calculatrice JS. duktape est probablement mieux adapte sur Numworks, en standalone, je ne sais pas s'il y aurait un interet a l'integrer a KhiCAS, on verra. (Clin d'oeil: c'est en testant duktape que j'ai eu mon probleme de nspire qui bloque, je n'avais trouve que reset pour quitter le shell de duktape.)

Enfin bref, l'idee c'est de donner plus de visibilite a Javascript sur calculatrices, j'aime personnellement beaucoup mieux JS que Python comme langage, sans doute pour sa proximite syntaxique avec C. Python avait un avantage pour les maths avec le support des entiers, avec QuickJS, l'avantage change de camp. C'est d'ailleurs interessant de noter que MicroPython n'implemente aucun algorithme de multiplication rapide et CPython seulement Karatsuba. Si vous devez travailler avec des entiers un peu longs, Python n'est aujourd'hui pas un bon choix de langage : O(n^2) ou O(n^(log(3)/log(2))) contre O(n*ln(n)) dans QuickJS (a des log pres).
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 79.8%
 
Posts: 3550
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Actualités

Who is online

Users browsing this forum: No registered users and 9 guests

-
Search
-
Social TI-Planet
-
Featured topics
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1343 utilisateurs:
>1312 invités
>25 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)