π
<-

[Projet] Underbasic

Assembleur, Axe, C/C++, ICE...

Votre avis

Ce projet est intéressant
9
50%
Ce projet est inutile
4
22%
J'aimerais prendre part au projet
2
11%
Je n'ai pas tout compris
2
11%
L'UnderBasic est trop complexe pour moi
1
6%
 
Total votes : 18

Re: [Projet] Underbasic

Unread postby Clément.7 » 25 Sep 2015, 20:30

@Epharius : Ça m'intéresserait effectivement mais lorsque j'aurais plus avancé dans le projet. Après l'un des principaux objectifs du projet c'est d'être accessible aux débutants alors on compilera en passant par les paramètres par exemple...
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Clément.7 » 01 Oct 2015, 17:52

UPDATE !

- Added optional arguments
- Added default value for optional arguments
- Added assignment support (e.g. "A = 3" become "3->A")
- Added assignment checker to verify if an assignment is valid
- Translation packages can translate functions' name
- Translated function's name can be "un-camel-cased" (e.g. "inverserPixel" become "inverser_pixel")
- Improved translation system : Make a translation pack is easier now (using a simple parameters system)
- Added #unquote directive to remove the quotes at the beginning and the end of a string to include it in another string without using concatenation
Misc. improvements
- Added notices to check problems encountered during compilation
- Fixed bug : Bug in errors display for "Missing argument for function..."


En français :

- Les fonctions acceptent désormais des arguments optionnels (c'est-à-dire que vous n'êtes pas obligé de les passer à la fonction). Dans ce cas-là, vous pouvoir choisir ou non d'inclure une portion de code selon si tel argument a bien été spécifié.
- Les arguments optionnels peuvent avoir une valeur par défaut. Cela signifie que si vous ne les spécifiez pas, la valeur par défaut sera attribuée à l'argument. Cependant, vous pourrez toujours ou non inclure certaines lignes selon si l'argument a été spécifié.
- Support des assignements : Le code 'A = 2' sera converti en '2->A'. Le compilateur vérifiera également que vous n'assignez pas une liste à un nombre, par exemple.
- Les noms des fonctions peuvent être traduites dans le pack de traduction
- Les noms de fonctions traduites peuvent être dé-camel-case-ée, c'est à dire que 'inverserPixel' deviendra 'inverser_pixel' ce qui permets une meilleur lisibilité dans certains cas.
- La création d'un pack de traduction est désormais plus facile grâce à leur nouveau format.
- La directive #unquote a été rajoutée pour enlever les guillemets d'une variable :

Code: Select all
function hello(string name) {
    print "Bonjour "+{{name}}
}
hello("Jacques")

devient
Code: Select all
function hello(string name) {
    #unquote name
    print "Bonjour {{name}}"
}
hello("Jacques")

1 - Ça permets d'avoir un code plus clair
2 - Le compilateur sortira "Bonjour Jacques" au lieu de "Bonjour "+"Jacques", ce qui permets de gagner quelques octets ^^

P.S. : Je ferai un tutoriel sur ce langage, sur les bases et les manipulations avancées, lorsque j'aurai terminé le compilateur (ce qui est presque le cas)
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Clément.7 » 01 Oct 2015, 19:01

[Désolé je fais un double post pour plus de lisibilité]

Bon la version bêta 0.5 est finie également :) !

- Added multiple files support
- Added auto-save feature
- Added mini-config editor ('#' icon in the toolbar)
- Added #include directive to include an other file
Misc. improvements
- Fixed bug : Due v0.4, functions' name were no longer translated
- Removed unused CodeMirror's files


Et en français :

- Ajout du support des fichiers : Vous pouvez maintenant, via une barre d'outils, créer et supprimer des fichiers. En cliquant sur le nom de l'un d'eux, vous accédez à son contenu. Le tout est sauvegardé en mémoire en temps réel.
- Ajout d'un auto-sauveur : Par défaut, lorsque vous modifiez n'importe quel fichier, son contenu est sauvegardé en temps réel sur votre ordinateur, si votre navigateur supporte localStorage, ce qui est le cas de tous les navigateurs récents
- Ajout de la directive #include : Vous pouvez inclure le contenu d'un fichier dans un autre en utilisant la directive #include. Par exemple, dans le fichier main, si vous mettez '#include test' le contenu du fichier 'test' sera importé à cet endroit.
- Suppression de fichiers inutiles, correction d'un bug...
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Clément.7 » 02 Oct 2015, 15:22

Le compilateur est en ligne, à la dernière version (v0.5 beta) : Compilateur UnderBasic

Tapez votre code dans le cadre de gauche et il sortira, compilé, dans le cadre de droite. Vous pouvez quitter la page à n'importe quel moment sans copier votre code, lorsque vous y reviendrez le code que vous aviez saisi sera restauré (tant que vous utilisez un navigateur récent)

EDIT : J'essaye actuellement d'implémenter un émulateur de TI dans le site, mais j'ai quelques problèmes. Je posterais à nouveau ici quand j'aurais terminé !
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Clément.7 » 17 Apr 2016, 18:57

Après 6 mois d'arrêt, le projet reprend ! J'ai décidé de continuer ce compilateur et d'y implémenter de nouvelles choses.
Au programme :
- Une bibliothèque de fonctions
- Ajouter l'utilisation "naturelle" des variables (ex: Disp test) qui n'est pour l'instant pas supporté

À propos de la compilation : Est-il possible de convertir un programme TI-Basic z80 (texte) en fichier .8xp en passant par Ti-Planet ? (via de l'Ajax par exemple)
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Adriweb » 17 Apr 2016, 21:56

Clément.7 wrote:À propos de la compilation : Est-il possible de convertir un programme TI-Basic z80 (texte) en fichier .8xp en passant par Ti-Planet ? (via de l'Ajax par exemple)

Pas directement.

Cependant, il est relativement simple de faire ça en JS pur, si ça t'intéresse.
( https://github.com/adriweb/tivars_lib_cpp se compile en C++ ; particulièrement je pourrais faire juste la partie qui serait requise ici, en JS emscripten )

Le problème éternel reste cependant quel formatage on veut utiliser, pour les tokens non représentables textuellement directement - et encore, il reste des ambiguités compliquées à gérer sans un input parfaitement speccé en amont ; critor me citait l'exemple du 'r²', interprétable de 3 façon différentes: lettre 'r' au carré (erreur de syntaxe, certes, mais techniquement valide), symbole 'r' (statistique) au carré, symbole 'r²' (statistique))
En effet, côté utilisateur, c'est ""simple"" de mettre en place une interface pour choisir exactement les bons tokens pour lever les ambiguités, mais sous une API, c'est déjà plus compliqué (du moins, il faut avoir fait le travail de désambiguitéifications (joli mot) en amont)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Unread postby Clément.7 » 18 Apr 2016, 07:52

Pour ce qui est dans ambiguïtés, je me base sur la syntaxe de TokenIDE.
Exemples : LSUITE correspond à la liste "SUITE" (donc le L est le petit L de liste).

Tu penses qu'il est possible de faire ça en JS pur ? Il y a de la manipulation de données hexa et de tokens, tout de même. En PHP ça doit pouvoir se faire en tout cas. Si tu penses pouvoir porter l'outil en JS ça m'aiderait beaucoup en effet :)
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Adriweb » 18 Apr 2016, 17:16

Logiquement, si l'utilisateur utilise bien tous les tokens spéciaux et leur bonne représentation, ca devrait être bon...

Mais bref, sinon oui, en JS pur c'est faisable (y compris télécharger le fichier généré, avec les nouveaux APIs HTML5).
Je te dirai quand j'aurais une version utilisable (bientôt, espérons :P)

Pour du PHP, j'ai ça aussi: https://github.com/adriweb/tivars_lib

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Unread postby Clément.7 » 18 Apr 2016, 19:45

Pour télécharger le fichier j'ai déjà une petite fonction toute prête qui utilise l'API Blob (code piqué sur StackOverflow :p).
Emscripten me semble bien compliqué à utiliser donc j'utilisais cette fameuse API que tu développes :)
En attendant je vais sans doute utiliser du bon vieux PHP pour convertir les codes ;)
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Unread postby Adriweb » 18 Apr 2016, 19:49

Emscripten, ce serait moi qui m'en occupe (pas compliqué une fois qu'on sait l'utiliser :P), au final ca devrait être relativement petit et simple à utiliser quand j'aurais fait les bons bindings/APIs.

Et en effet, c'est via des Blob, pour les téléchargements.

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

PreviousNext

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"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.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
744 utilisateurs:
>700 invités
>37 membres
>7 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)