Aujourd'hui j'ai décidé de vous présenter mon nouveau gros projet : un langage de programmation codé en C très simple nommé EdesLang que je compte adapter pour Ti-83 Premium Ce dès que je pourrais. Pour l'instant, il fonctionne pour les entrées/sorties standard de la bibliothèque stdio. D'ailleurs, si vous connaissez des algorithmes qui convertissent des double en char* et inversement, je suis preneur, parce que d'après ce que j'ai compris, je ne pourrais pas utiliser sscanf et snprintf dans la version pour calculatrice.
(Ce sujet n'est plus d'actualité, le projet a évolué, et allez plutôt voir : https://tiplanet.org/forum/viewtopic.php?f=12&t=26122&view=unread#unread)
Pour l'instant, je suis à la fin de la "calculatrice" du langage, qui permet de calculer des expressions.
Voici ce qu'elle supporte :
-> Tous types de calculs, booléens, nombres et chaînes de caractères.
Exemples :
-> Création de variables simples
Exemples :
-> Création de listes
Exemples :
-> Utilisation de fonctions
Exemples :
-> Référencement / déréférencement de variables
Exemples :
Cela permet de créer / modifier des variables à partir de leur nom sous forme de chaîne de caractères.
C'est un ajout par rapport à Python, mais sinon, la syntaxe des expressions est quasiment identique.
Voici ce qu'elle supporte :
-> Tous types de calculs, booléens, nombres et chaînes de caractères.
Exemples :
- Code: Tout sélectionner
>>> 1==3-2 and 18/9==2
True
>>> ("salut" + " ")*5
"salut salut salut salut salut "
>>> "coucou" - "ou"
"cc"
>>> "bonjour" - 1
"bonjou"
>>> "EdesLang" // 2
"Edes"
>>> 89 //6
14
>>> 89 % 6
5
>>> 6*14+5
89
>>> not True
False
-> Création de variables simples
Exemples :
- Code: Tout sélectionner
>>> a=18-(45*2)
-72
>>> a
-72
>>> chaine = "coucou"
"coucou"
>>> chaine
"coucou"
>>> chaine + " les amis"
"coucou les amis"
>>> chaine += "les copains"
"coucoules copains"
>>> chaine
"coucoules copains"
>>> a *= 56
-4032
>>> a
-4032
>>> nombre = 100
100
>>> nombre -= 50
50
>>> nombre
50
-> Création de listes
Exemples :
- Code: Tout sélectionner
>>> maListe = [1,2,"un","deux"]
[1, 2, "un", "deux"]
>>> maListe[1]
2
>>> maListe = ["hey","comment","ca","va","?"]
["hey", "comment", "ca", "va", "?"]
>>> maListe
["hey", "comment", "ca", "va", "?"]
>>> maListe2 = maListe
["hey", "comment", "ca", "va", "?"]
-> Utilisation de fonctions
Exemples :
- Code: Tout sélectionner
>>> a=[1,2,3]
[1, 2, 3]
>>> append(a,4,5,6)
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3, 4, 5, 6]
>>> b=["un", "deux", "trois"]
["un", "deux", "trois"]
>>> remove(b,1)
["un", "trois"]
>>> b
["un", "trois"]
>>> insert(b,"deux",1)
["un", "deux", "trois"]
>>> b
["un", "deux", "trois"]
>>> reponse = input("Comment vous appelez-vous ? ")
Comment vous appelez-vous ? Bobb
"Bobb"
>>> reponse
"Bobb"
>>> age = input("Votre age ? ")
Votre age ? 17
"17"
>>> age=nbr(age)
17
>>> age++
18
>>> reponse = "Bobb"
"Bobb"
>>> age=18
18
>>> b=["un","deux","trois"]
["un", "deux", "trois"]
>>> print(age, reponse, b)
18 Bobb ["un", "deux", "trois"]
>>> type(b)
"Liste"
>>> type(reponse)
"Texte"
>>> type(age)
"Nombre"
>>> agestr=str(age)
"18"
>>> len(b)
3
>>> len(reponse)
4
>>> maChaine = "123456789"
"123456789"
>>> maChaine2 = sub(maChaine, 1, len(maChaine))
"23456789"
-> Référencement / déréférencement de variables
Exemples :
- Code: Tout sélectionner
>>> 5 -> "variable"
5
>>> variable
5
>>> &variable
"variable"
>>> nomVariable = &variable
"variable"
>>> :nomVariable
5
>>> 45 -> nomVariable
45
>>> :nomVariable
45
>>> variable
45
Cela permet de créer / modifier des variables à partir de leur nom sous forme de chaîne de caractères.
C'est un ajout par rapport à Python, mais sinon, la syntaxe des expressions est quasiment identique.
Je vous transmets le fichier .exe d'EdesLang. Vous pouvez ainsi le tester et m'indiquer toutes les erreurs que vous voyez. Testez tout ce qui est syntaxiquement correct et qui est censé fonctionner, et rapportez-moi ce qui ne marche pas. Si vous n'êtes pas sur Windows, voici le lien permettant d'accéder au programme en ligne et à son code source.
Bon courage, et merci d'avance !