π
<-

[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 Hayleia » 19 Sep 2015, 17:10

Clément.7 wrote: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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [Projet] Underbasic

Unread postby 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
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 Wistaro » 20 Sep 2015, 10:33

Très beau projet ! Bon courage :)
Nouveau sur le site, ClaudeBot [spider] ? 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!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: [Projet] Underbasic

Unread postby 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
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 Wistaro » 21 Sep 2015, 16:44

Pourrait-on avoir le lien du repos?
Nouveau sur le site, ClaudeBot [spider] ? 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!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: [Projet] Underbasic

Unread postby 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
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 » 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
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

Beta v0.3

Unread postby 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: Select all
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: Select all
{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: Select all
#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: Select all
function hello (nom) {
   print "Bonjour "+nom
}

hello("Michel")


ce qui donnera

Code: Select all
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: Select all
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: Select all
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: Select all
input 2,"Salut"
input "Salut","Nom"
input "Nom",[A]


il faudra obligatoirement mettre quelque chose du style :

Code: Select all
input "Nom",Str1


ou

Code: Select all
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: Select all
// 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
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 » 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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14737
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 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
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8%
 
Posts: 1160
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

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.
776 utilisateurs:
>751 invités
>16 membres
>9 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)