Nouveau langage : le langage G

Nouveau langage : le langage G - Divers - Programmation

Marsh Posté le 03-03-2008 à 07:21:15    

Bonjour à tous :)
 
J'ai créé un langage de programmation, ou plutôt de script puisqu'il ne se compile pas mais est interprété.. enfin ce n'est qu'une histoire de dénomination. J'aimerais avoir votre avis sur mon travail. Le langage pour le moment n'a pas de grandes prétentions, mais il permet jusqu'à maintenant de faire des calculs (bien entendu), des sockets (client, serveur), du multithread (basique), de la manipulation de fichiers, de chaînes de caractères...
 
Voici le lien pour télécharger le parser : http://glanguage.free.fr/releases/GLANGUAGE.0.7.tar.gz
 
Des programmes faisant office d'exemples sont disponibles dans le dossier "examples" de l'archive.
 
J'ai créé un petit site web, sans prétentions certes, mais permettant au moins de télécharger le parser, consulter la documentation en ligne et en savoir un peu plus sur le langage : http://glanguage.free.fr
 
Voici à quoi ressemble le langage (programme basique de calcul de la factorielle d'un nombre) :

Code :
  1. function factorial(int nb) return int {
  2.     int fact = 1;
  3.     for (int i = 1; i <= nb; i=i+1) {
  4.         fact = fact * i;
  5.     }
  6.     return fact;
  7. }
  8. entry {
  9.     echo("Whose number you want the factorial to be calculated?",1);
  10.     echo("nb = ",0);
  11.     int nb;
  12.     input(nb,int);
  13.     int fact = factorial(nb);
  14.     echo(nb & "! = " & fact & ".",1);
  15. }


 
Merci pour vos avis ;)

Message cité 1 fois
Message édité par G-FACTION le 03-03-2008 à 07:22:37
Reply

Marsh Posté le 03-03-2008 à 07:21:15   

Reply

Marsh Posté le 03-03-2008 à 08:38:31    

Mon avis : bon courage pour te démarquer des 20millions de langages qui font la même chose que le tien.
Et apprends l'anglais, si tu veux faire des exemples en anglais.[:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-03-2008 à 15:25:58    

Est-ce que j'ai dit quelque part que je voulais me démarquer des autres langages existants ? Je n'ai pas la prétention de vouloir imposer mon langage. J'ai fait ça pour moi, et je le mets à disposition des gens si ça peut en intéresser certains. Je vous demande votre avis, rien de plus !
 
Pour l'anglais, je ne vois pas pourquoi tu dis ça, j'ai peut-être fait une erreur quelque part, mais ce n'est pas une raison pour me dire d'apprendre l'anglais : d'une part, si tu connaissais mon vrai niveau en anglais tu ne dirais pas ça, et d'autre part, tu peux apprendre à être courtois et respectueux envers les autres, ok ?

Reply

Marsh Posté le 03-03-2008 à 15:26:42    

langageG [:sadnoir]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 03-03-2008 à 15:33:08    

G-FACTION a écrit :

Est-ce que j'ai dit quelque part que je voulais me démarquer des autres langages existants ? Je n'ai pas la prétention de vouloir imposer mon langage. J'ai fait ça pour moi, et je le mets à disposition des gens si ça peut en intéresser certains. Je vous demande votre avis, rien de plus !


 
Tu demandes un avis, je te donne le mien...[:skeye]
 

G-FACTION a écrit :

Pour l'anglais, je ne vois pas pourquoi tu dis ça, j'ai peut-être fait une erreur quelque part, mais ce n'est pas une raison pour me dire d'apprendre l'anglais : d'une part, si tu connaissais mon vrai niveau en anglais tu ne dirais pas ça, et d'autre part, tu peux apprendre à être courtois et respectueux envers les autres, ok ?


 
Je dis ça parce-que ceci : "Whose number you want the factorial to be calculated?" n'est pas correct.[:jagstang]
Et si tu prends la mouche à la moindre remarque de ce genre t'es pas sorti de l'auberge.[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-03-2008 à 15:33:40    

G-FACTION a écrit :

Pour l'anglais, je ne vois pas pourquoi tu dis ça, j'ai peut-être fait une erreur quelque part, mais ce n'est pas une raison pour me dire d'apprendre l'anglais : d'une part, si tu connaissais mon vrai niveau en anglais tu ne dirais pas ça, et d'autre part, tu peux apprendre à être courtois et respectueux envers les autres, ok ?


Heu, d'après ton site, il a franchement raison !
Si c'est un langage pour toi, juste comme ça, pourquoi te casser la tête à faire un site en anglais français traduit mot-à-mot en anglais ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 03-03-2008 à 15:35:49    

Je viens de dire "J'ai fait ça pour moi, et je le mets à disposition des gens si ça peut en intéresser certains", donc autant le faire en anglais.

Reply

Marsh Posté le 03-03-2008 à 15:36:22    

(...et au passage, le langage G c'est déjà pris, c'est le langage graphique de labview. [:petrus75])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-03-2008 à 15:39:37    

skeye a écrit :

(...et au passage, le langage G c'est déjà pris, c'est le langage graphique de labview. [:petrus75])


 
Si tu vas par là, on peut ajouter le Deesel, un langage basé sur Java. Donc on pourrait accuser soit Deesel, soit labview de la même chose :p


Message édité par G-FACTION le 03-03-2008 à 15:40:56
Reply

Marsh Posté le 03-03-2008 à 16:31:15    

Moi j'ai quand même dans l'idée qu'un langage devrait être multi plateforme. Enfin surtout quand il est voué à créer des applications.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-03-2008 à 16:31:15   

Reply

Marsh Posté le 03-03-2008 à 17:20:10    

je vois que retourner un int sur une fonction factoriel, c'est une erreur de débutant

Reply

Marsh Posté le 03-03-2008 à 17:41:41    

n appartient à l'ensemble N en maths, pour la fonction factorielle (n!). Donc l'ensemble des entiers. Une multiplication d'entiers ne donnera que des entiers, rien d'autre...
Alors le type 'int' me semble correct. Après, étant donné la très forte croissance de la fonction (la plus grosse possible, même plus qu'exponentielle, et justement factorielle en tant qu'adjectif), on tombera rapidement sur un dépassement puisque les nombres seront énormes. Mais dans mon langage il n'y a pas de 'long' ou 'double' ou quoi que ce soit d'autre pour le moment. C'est marqué dans la doc hein. Alors y'a pas d'erreur de débutant.

Reply

Marsh Posté le 03-03-2008 à 17:49:06    

t'es stressé [:petrus75]

Reply

Marsh Posté le 03-03-2008 à 17:58:05    

Non mais quand tu demandes gentiment l'avis des gens sur un forum, et qu'on te dit d'apprendre l'anglais ou qu'on te traite de débutant alors que ce n'est absolument pas le cas, et bien ça fait pas vraiment plaisir...

Reply

Marsh Posté le 03-03-2008 à 18:00:22    

Tout ce que j'ai à dire, c'est que ça a l'air de combiner le pire de VB, le pire de Java et le pire de Javascript. Do not want.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 03-03-2008 à 18:00:38    

oui, c'est des mechants ici :( ils acceuillent ,les nouveaus a la pelle a clous [:florentg].  
 
surtout skeye :/ il fait toujours fuir. Je te conseille d'envoyer un MP a un moderateur (comme harkonnen) pour te plaindre :o

Reply

Marsh Posté le 03-03-2008 à 18:02:17    

[:natas]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-03-2008 à 18:25:19    

Etrange car je n'ai jamais touché au VB ni au Javascript, mais seulement un peu au Java en IUT. Je me suis surtout inspiré globalement du C et du mIRC Script pour certaines choses. Je voulais faire quelque chose de rapide et pratique à utiliser, sans prise de tête. C'est clair que si vous voulez un langage à la pointe faudra pas chercher du coté de ce langage.
 

kadreg a écrit :

oui, c'est des mechants ici :( ils acceuillent ,les nouveaus a la pelle a clous [:florentg].  
 
surtout skeye :/ il fait toujours fuir. Je te conseille d'envoyer un MP a un moderateur (comme harkonnen) pour te plaindre :o


 
Bon, les arrogants, vous me prenez pour un noob, je vais vous laisser sur ce post, on va s'arrêter là. Visiblement vous ne savez pas critiquer quelque chose sans attaquer, et le respect ne semble pas faire partie de votre vocabulaire. Je trouve ça plutôt lamentable et dommage pour vous, d'autant plus que je suis prêt à parier qu'au moins la moitié des personnes ici n'ont pas la moindre idée de comment on fait un interpréteur ni la moindre notion en théorie des langages.
 
Considérez ce topic comme clos.
 
さようなら愚人。。。

Reply

Marsh Posté le 03-03-2008 à 18:34:12    

G-FACTION a écrit :

Etrange car je n'ai jamais touché au VB ni au Javascript, mais seulement un peu au Java en IUT. Je me suis surtout inspiré globalement du C et du mIRC Script pour certaines choses. Je voulais faire quelque chose de rapide et pratique à utiliser, sans prise de tête. C'est clair que si vous voulez un langage à la pointe faudra pas chercher du coté de ce langage.
 


 

G-FACTION a écrit :


 
Bon, les arrogants, vous me prenez pour un noob, je vais vous laisser sur ce post, on va s'arrêter là. Visiblement vous ne savez pas critiquer quelque chose sans attaquer, et le respect ne semble pas faire partie de votre vocabulaire. Je trouve ça plutôt lamentable et dommage pour vous, d'autant plus que je suis prêt à parier qu'au moins la moitié des personnes ici n'ont pas la moindre idée de comment on fait un interpréteur ni la moindre notion en théorie des langages.
 
Considérez ce topic comme clos.
 
さようなら愚人。。。


Je mettrais mes deux burnes a couper que Masklinn en sait bien plus long que toi sur n'importe quel sujet de programmation. :jap:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-03-2008 à 18:36:06    

Tu remarqueras que j'ai considéré la remarque de Masklinn sans agressivité et que mes autres remarques ne lui étaient pas destinées.

Reply

Marsh Posté le 03-03-2008 à 18:50:21    

Sans aggressivité mais avec un bon ton de supériorité affirmé :/
 
Et en ce qui concerne la rapidité du language, tu as fait des tests ? (comparé a Python / Perl / autre)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-03-2008 à 18:57:07    

Oui je m'étais amusé à faire un test, mais extrêmement basique, je ne pense pas qu'il soit vraiment représentatif de la rapidité de la totalité du langage puisqu'il ne fait que manipuler des entiers dans un tableau. J'ai fait une comparaison avec l'algorithme du tri par bulles, le plus basique des algorithmes de tri.
D'après mes calculs et pour cet algo, le G est 45 fois plus lent que le C++, et 5.8 plus lent que le PHP.
J'ai quand même fait un peu d'optimisation depuis, mais cela dit, je pense qu'il est toujours plus lent quoiqu'il arrive (surtout comparé au C++).

Reply

Marsh Posté le 03-03-2008 à 19:19:55    

FAIL !

Citation :

Erreur d'encodage de contenu

 

La page que vous essayez de voir ne peut être affichée car elle utilise un type de compression invalide ou non supporté.

 

La page que vous essayez de voir ne peut être affichée car elle utilise un type de compression invalide ou non supporté.

 

   * Veuillez contacter le webmestre du site pour l'informer de ce problème.

 

impossible a telecharger le tar.gz

 


edit ca passe par wget
par contre ca attendra que je suis sous win pour tester [:pingouino]


Message édité par KangOl le 03-03-2008 à 19:24:12
Reply

Marsh Posté le 03-03-2008 à 19:34:02    

G-FACTION a écrit :

Je me suis surtout inspiré globalement du C et du mIRC Script pour certaines choses.


[:pingouino]  

G-FACTION a écrit :

Je voulais faire quelque chose de rapide et pratique à utiliser, sans prise de tête.


Tu réalises qu'il y a déjà 2 douzaines de langages qui remplissent ces critères?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 03-03-2008 à 20:27:57    

Oui je sais, je voulais juste faire le mien, c'est tout. Au moins maintenant je sais comment on fait, car y'a une grande théorie derrière tout ça. En gros il s'agit de créer une représentation arborescente du programme puis de l'évaluer (arbre syntaxique abstrait).
 
N'importe quelle expression mathématique peut être représentée sous la forme d'un arbre, et il en va de même pour les fonctions et tout ce qui compose un programme. En suite, il existe des algorithmes de parcours d'arbre, qui fonctionnent de manière récursive. On transmet la valeur de retour de noeud en noeud et on obtient le résultat d'une instruction. Je trouve ça extrêmement bien pensé :p

Reply

Marsh Posté le 03-03-2008 à 20:33:17    

G-FACTION a écrit :

Oui je sais, je voulais juste faire le mien, c'est tout. Au moins maintenant je sais comment on fait, car y'a une grande théorie derrière tout ça. En gros il s'agit de créer une représentation arborescente du programme puis de l'évaluer (arbre syntaxique abstrait).
 
N'importe quelle expression mathématique peut être représentée sous la forme d'un arbre, et il en va de même pour les fonctions et tout ce qui compose un programme. En suite, il existe des algorithmes de parcours d'arbre, qui fonctionnent de manière récursive. On transmet la valeur de retour de noeud en noeud et on obtient le résultat d'une instruction. Je trouve ça extrêmement bien pensé :p


:ouch: effectivement, dit comme ça ça semble sacrément intelligent. Mais il a du falloir des années de recherche aux théoriciens pour en arriver là...


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 03-03-2008 à 20:33:27    

G-FACTION a écrit :

Au moins maintenant je sais comment on fait, car y'a une grande théorie derrière tout ça. En gros il s'agit de créer une représentation arborescente du programme puis de l'évaluer (arbre syntaxique abstrait).

 

N'importe quelle expression mathématique peut être représentée sous la forme d'un arbre, et il en va de même pour les fonctions et tout ce qui compose un programme. En suite, il existe des algorithmes de parcours d'arbre, qui fonctionnent de manière récursive. On transmet la valeur de retour de noeud en noeud et on obtient le résultat d'une instruction. Je trouve ça extrêmement bien pensé :p


Oui enfin ça c'est marqué dans le premier chapitre du Dragon Book, grosso merdo [:petrus75]

 

Tout ça pour dire que je ne critique absolument pas le faire de te créer un langage pour mieux comprendre comment ça marche ou juste t'amuser, mais j'ai du mal à voir l'intérêt de le poster sur un forum comme celui-ci, il n'y avait aucune chance pour que tu ais des réactions positives en déclarant un "nouveau langage". Une autre approche aurait probablement été une meilleure idée.


Message édité par masklinn le 03-03-2008 à 20:36:38

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 03-03-2008 à 20:40:35    

Pour ce qui est l'apprentissage, j'imagine que c'est enrichissant, quand bien même tu seras surement limité à écrire un DSL dans ta vie professionelle. Par contre j'ai du mal à saisir la corrélation entre le slogan de ton site et le bout de code que tu montres.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 03-03-2008 à 20:45:01    

Shinuza a écrit :

Pour ce qui est l'apprentissage, j'imagine que c'est enrichissant, quand bien même tu seras surement limité à écrire un DSL dans ta vie professionelle.

 

non pas moi [:dawak]


Message édité par kadreg le 03-03-2008 à 20:45:11

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 03-03-2008 à 20:46:02    

WiiDS a écrit :


Je mettrais mes deux burnes a couper que Masklinn en sait bien plus long que toi sur n'importe quel sujet de programmation. :jap:


 
 
Avoir la théorie c'est bien, le mettre en pratique c'est :  :jap:

Reply

Marsh Posté le 03-03-2008 à 22:44:55    

Bon. Ménage fait, et boulot de modofacho fait aussi. Je hais ce job.

 

Et G-Faction, pas la peine d'être méprisant avec tes interlocuteurs non plus, la plupart des intervenants ici ont un vrai niveau d'expertise.

Message cité 2 fois
Message édité par Elmoricq le 03-03-2008 à 22:59:41
Reply

Marsh Posté le 04-03-2008 à 00:19:09    

G-FACTION a écrit :

Bon, les arrogants, vous me prenez pour un noob, je vais vous laisser sur ce post, on va s'arrêter là. Visiblement vous ne savez pas critiquer quelque chose sans attaquer, et le respect ne semble pas faire partie de votre vocabulaire. Je trouve ça plutôt lamentable et dommage pour vous, d'autant plus que je suis prêt à parier qu'au moins la moitié des personnes ici n'ont pas la moindre idée de comment on fait un interpréteur ni la moindre notion en théorie des langages.
 
Considérez ce topic comme clos.
 
さようなら愚人。。。


 
je crois surtout que tu es un peu trop sensible et que tu prends un peu trop au quart de tour ...
sinon tres bonne idée de t'etre fait ton propre language pour mieux comprendre le fonctionnement.
@+

Reply

Marsh Posté le 04-03-2008 à 08:17:07    

J'ai toujours pas compris pourquoi il fallait passer un type à input. [:cupra]

Reply

Marsh Posté le 04-03-2008 à 08:18:33    

Lam's a écrit :

J'ai toujours pas compris pourquoi il fallait passer un type à input. [:cupra]


Whoa, j'avais pas vu ça [:pingouino] (et faut lui filer une variable par référence en paramètre, je note. C'est bien dégueu [:pingouino])


Message édité par masklinn le 04-03-2008 à 08:19:17

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-03-2008 à 08:54:45    

yeah \o/ G-FACTION: tu nous fais un cours ? :O


---------------
Python Python Python
Reply

Marsh Posté le 04-03-2008 à 09:45:56    

BenO a écrit :

yeah \o/ G-FACTION: tu nous fais un cours ? :O


un bon début : http://glanguage.free.fr/index.php?o=2  ;)

Reply

Marsh Posté le 04-03-2008 à 09:47:05    

ah mais non :D je veux pas un cours sur son langage :o
mais un cours sur comment en créer un ^^


---------------
Python Python Python
Reply

Marsh Posté le 04-03-2008 à 09:51:09    

Lam's a écrit :

J'ai toujours pas compris pourquoi il fallait passer un type à input. [:cupra]


On peut aussi s'interroger sur le simili-booléen à "echo" qui, je pense, indique un saut de ligne ou pas.

Message cité 2 fois
Message édité par Elmoricq le 04-03-2008 à 09:51:19
Reply

Marsh Posté le 04-03-2008 à 09:56:19    


[:totoz]

BenO a écrit :

ah mais non :D je veux pas un cours sur son langage :o
mais un cours sur comment en créer un ^^


http://mitpress.mit.edu/sicp/
http://en.wikipedia.org/wiki/Compi [...] _and_Tools


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-03-2008 à 10:03:18    

ce langage marque un point :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed