π
<-
Chat plein-écran
[^]

[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%
 
Nombre total de votes : 18

Re: [Projet] Underbasic

Message non lude Hayleia » 19 Sep 2015, 17:10

Clément.7 a écrit:Quand je parle du 'compilateur' je parle du programme qui transcrit l'UnderBasic en un autre langage... Je ne comprends pas bien ta remarque.

Je parle de la même chose et ma remarque est valide.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [Projet] Underbasic

Message non lude Clément.7 » 19 Sep 2015, 17:22

Alors peut-être que je me suis mal exprimé.
Ce que je dis c'est que comme je ne sais pas programmer en asm z80 je ne peux pas faire un convertisseur UnderBasic -> asm.
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Wistaro » 20 Sep 2015, 10:33

Très beau projet ! Bon courage :)
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.3%
 
Messages: 3180
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: [Projet] Underbasic

Message non lude Clément.7 » 21 Sep 2015, 11:18

J'ai commencé a créer le projet et le repo GitHub. La première version en alpha-test sera disponible sous quelques jours si j'ai accès a mon ordi. Sinon ce sera ce week-end.
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Wistaro » 21 Sep 2015, 16:44

Pourrait-on avoir le lien du repos?
Nouveau sur le site, Anonymous ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.3%
 
Messages: 3180
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: [Projet] Underbasic

Message non lude Clément.7 » 21 Sep 2015, 17:42

Il est actuellement vide mais je vais bientôt le remplir
https://github.com/ClementNerma/UnderBasic
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Clément.7 » 23 Sep 2015, 19:56

J'ai (enfin) commencé le projet et pour l'instant on peut nommer les variable (Str1 devient "name" par exemple), les espaces inutiles sont tronqués et je suis en train d'implémenter le système de fonction. Il est également possible d'appeler une fonction avec des parenthèses ou sans.

Je mettrais en ligne le repo quand j'aurais un peu plus avancé.

P.S. : Je viens de me rendre compte qu'il est impossible de savoir qui a voté dans le sondage, donc le champ "j'aimerais prendre part au projet" ne sert à rien. Que la personne qui a coché cette case me le signale. Merci !
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Beta v0.3

Message non lude Clément.7 » 25 Sep 2015, 17:14

Voilà voilà, le projet est fin prêt pour être utilisé !

Voici un petit résumé des modifications que le projet a subi, ou pour ceux qui n'ont pas lu le début du sujet :

Le langage UnderBasic est un langage de programmation pour les débutants ou pour les programmeurs qui souhaitent se simplifier la vie. Ce langage propose notamment un système de fonctions qui permets de réutiliser plusieurs fois un bout de code sans le réécrire à chaque fois.

Voici à quoi ça ressemble (j'ai pris la suite de Fibonacci) : (NOTE : la syntaxe a été modifiée pour être plus simple et accessible aux utilisateurs)

Démonstration

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
i : A
suite : _SUITE

suite = [0, 1]
for(i, 3, 18) {
    suite[i] = suite[i - 2] + suite[i - 1]
    print suite[i]
}


ce qui nous donne en TI-Basic (les "L" correspondent au petit L de liste sur les TI) :

Code: Tout sélectionner
{0, 1}->LSuite
For(A,3,18)
LSUITE(A-2)+LSUITE(A-1)->LSUITE(A)
Disp LSUITE(A)
End


Actuellement, on est est à ce stade là :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
#library alias

i : A
suite : LSUITE

suite = {0, 1}
for(i, 3, 18)
    suite[i-2]+suite[i-1]->suite[i]
    print suite[i]
End


il reste donc encore un peu de boulot (mais le plus gros est fait !)


Explications

1. "#library" permets d'inclure une bibliothèque stockée sur le serveur. Actuellement, il n'en existe qu'une, à savoir "alias". D'ici peu de temps il y aura aussi "short-alias", "alias-fr" et "generic", mais j'y reviendrais plus tard. La bibliothèque "alias" permets d'avoir accès à des fonctions comme "disp", "print", "input", etc. Elle sert également à vous permettre de coder avec moins d'erreur, mais nous verrons ça un peu après.
2. "i : A" sert à indiquer au compilateur que, lorsque l'on utilisera la variable "i", on fera en fait référence à la variable "A" de la calculatrice. Cela vous permets de nommer vos variables. Par exemple, on pourra appeler "Str1" avec le nom "nomDeFamille" par exemple, pour améliorer la clareté du programme.
3. La fonction "print" est une fonction définie dans la bibliothèque "alias" qui a été incluse au début. Elle permets d'afficher du texte à l'écran.

Définir une fonction

Voici une autre petite démonstration pour montrer comment on définit une fonction :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
function hello (nom) {
   print "Bonjour "+nom
}

hello("Michel")


ce qui donnera

Code: Tout sélectionner
Disp "Bonjour "+"Michel"


Prototypage

Dans l'objectif de coder mieux en faisant moins de fautes, j'ai mis en place un système (optionnel) de prototypage.
En gros, cela permets de dire qu'une fonction n'acceptera comme argument qu'une chaîne de caractères et un nombre.
Par exemple, si vous utilisez une fonction pour faire un calcul avec deux nombres, et que vous passez une chaîne de caractères sans faire attention, le programme plantera. Le temps de vous rendre compte de votre erreur et de la corriger, vous aurez perdu une minute. Multipliez ça par le nombre d'erreurs potentiels que vous pouvez faire en oubliant un guillemet, une virgule...

Il est également possible d'exiger qu'un argument soit un pointeur. En d'autre termes, la fonction n'acceptera pas que vous lui passiez en argument "Salut !" mais une chaîne de caractères, comme Str1. Petit exemple : si j'ai une fonction qui fait des calculs puis stocke le résultat dans une variable, et que je lui passe en paramètre le nombre "2", on va se retrouver avec un truc du genre :

Code: Tout sélectionner
2*7*sin(8)+B->2


Bim ! Erreur de syntaxe. Là, vous ne ferez pas l'erreur car le compilateur refusera tout simplement de convertir votre code tant que vous n'aurez pas passé un pointeur à la fonction.
Vous pouvez également mixer les deux. Prenons l'exemple de la fonction "input" dans la bibliothèque "alias". Elle se présente sous cette forme :

Code: Tout sélectionner
function input(string text, string *name) {
    \Input {{text}},{{name}}
}


(NOTE : Le "\" signifie que le compilateur ne doit pas tenter d'interpréter cette ligne comme un appel à une fonction)

Ici, il faut passer en paramètre à la fonction une chaîne de caractère et une autre chaîne de caractère sous la forme d'un pointeur. Autrement dit, les lignes suivantes ne fonctionneront pas :

Code: Tout sélectionner
input 2,"Salut"
input "Salut","Nom"
input "Nom",[A]


il faudra obligatoirement mettre quelque chose du style :

Code: Tout sélectionner
input "Nom",Str1


ou

Code: Tout sélectionner
nom : Str1
input "Nom", nom


Voilà !

Pour conclure...

Le plus gros et le plus difficile du travail est enfin terminé. Les fonctions sont supportées, tout comme les noms de variables.
Notez qu'il est possible d'appeler une fonction avec des parenthèses :

Code: Tout sélectionner
// Ceci
input "nom",Str1
// équivaut à
input("nom", Str1)
// ou à
input "nom"  ,        Str1


P.S. : J'ai ajouté la traduction en français pour les anglophones ;)

Donnez-moi vos impressions !
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
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [Projet] Underbasic

Message non lude Adriweb » 25 Sep 2015, 18:43

Intéressant :)
A partir de GitHub, tu devrais rendre le contenu directement disponible en ligne/démo (cf. GitHub Pages), ça serait pratique pour tester ;)

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14670
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [Projet] Underbasic

Message non lude Epharius » 25 Sep 2015, 19:13

Cool, c'est bien fait ;)

Si tu veux je peux faire passer ça en assembleur (même si je ne sais pas si je vais être capable de reproduire toutes les fonctions).
Dis moi ce que t'en pense !
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7.7%
 
Messages: 1148
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

PrécédenteSuivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 24 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1463 utilisateurs:
>1447 invités
>11 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)