Mon nouveau langage de programmation

Mon nouveau langage de programmation - Langages fonctionnels - Programmation

Marsh Posté le 27-10-2010 à 01:35:11    

Bonsoir tout le monde, malgré l'heure tardive (01:26) je prends la peine de vous annoncer la création d'un nouveau langage de programmation, le Freeway 1.0, oui oui, le Freeway... Alors bien sûr il n'est pas encore fonctionnel, mais j'ai déjà fait une très petite partie de la syntaxe des commandes, des vriables etc... Voici un script de 77 lignes que je viens d'écrire, j'expliquerai en détail les significations demain, mais dans un premier temps, dites moi si cela vous inspire (il est censé être simple et accessible à tous, du moins c'est mon but) :  

   ##FREEWAY 1.0 //{encod = {iso-8859-1}}/{lang = {fr}}/{vers = {2010 ~ 1.0}} \
 
     var [
       more.name = "var1";
                  "var2";
                  "var3";
     ]
     
     attrib = "function"  
       function.1 = '{click}'
       to = "var1";
       function.2 = '{move}'
       to = "var2";
       function.3 = '{select}'
       to = "var3";
     end attrib
     
     define = "function.1"  
       {click} is = "interactivity" with "utilisator"
         {click} is = "function" of "button"
        {click} effect is = "var1" value
          value of "var1" = <[Result {1}{2}]>
     end define
     
     define = "function.2"  
       {move} is = "interactivity" with "utilisator"
         {move} is = "function" of "console"
        {move} effect is = "var2" value
          value of "var2" = <[Result {1.1}{2.1}]>
     end define
     
     define = "function.3"
       {select} is = "interactivity" with "utilisator"
         {select} is = "function" of "console / text"
        {select} effect is = "var1" value
              "var3" value
          value of "var3" = <[Result {1.2}{2.2}]>
     end define
     
     define = "console / console content"
        bord style {
         bord.value = 1;
         bord.color = black;
      }  
        font style {
         font.color = white;
      }
        letter style {
         letter.value = 10;
         letter.police = Comic Sans Ms;
         letter.color = black;
      }
        button style {
         button.size is = "text.button.var.size" value;
        value of "text.button.var.size" = <[]>
         button.design = "font white";
             "font contrast" = "white/black";
      }
        font contrast style {
         contrast.white = 50% of top;
      contrast.black = 50% of bottom;
      }
     end define
     
     define = "Result"
       Result {1} {
        if {click} = actif
       modif = "button style"
        button.design = "recess"
               "font white"
            "font contraste" = "white"
        end if
      }
       Result {2} {
        if {click} = actif
       open link = "URL"
      }
     

 
Voilà la bête, dites moi ce que vous en pensez, sachant que j'ai été inspiré par une bouteille de coca Freeway (oui oui absolument, c'est pas la grande classe mais voilà  :whistle: ).  
 
Sur ce, je vous souhaite à toutes et à tous une très bonne nuit !  :)  
       


---------------
Hacker n'est pas du vol,
Reply

Marsh Posté le 27-10-2010 à 01:35:11   

Reply

Marsh Posté le 27-10-2010 à 07:25:53    

Reply

Marsh Posté le 27-10-2010 à 08:14:31    

el muchacho a écrit :

A quoi ça sert ?


 
Voilà une bonne question, techniquement, ça sert à faire des applications en console (type calculatrice, boîte de message interactive etc...) facilement. Je vais détailler le script d'ici un ou deux jours (je pars en vacances) pour que vous compreniez mieux. Si certains seraient interessés pour m'aider dans ce projet, sachant que je me donne 5 ans, qu'il me fasse signe ! ;)  
 
J'espère avoir répondu à ta qestion... Sur ce, bonne journée !  ;)


---------------
Hacker n'est pas du vol,
Reply

Marsh Posté le 27-10-2010 à 10:44:52    

Autre question:
 
Il a quoi en plus que d'autres langages déjà évolués et répandus genre Ruby, Python & co ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-10-2010 à 13:12:40    

Ca a l'air super verbeux en plus comme langage :/ Je trouve la lecture de ton code pas agréable du tout...
 
Edit : en plus, comme le demande si justement esox_ch, ça quel besoin répond ton langage? La plupart des langages a été inventé pour répondre à un besoin que ne remplissait pas/bien/facilement les langages déjà existants.

Message cité 1 fois
Message édité par rufo le 27-10-2010 à 13:14:05

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-10-2010 à 14:11:17    

rufo a écrit :

Ca a l'air super verbeux en plus comme langage :/ Je trouve la lecture de ton code pas agréable du tout...
 
Edit : en plus, comme le demande si justement esox_ch, ça quel besoin répond ton langage? La plupart des langages a été inventé pour répondre à un besoin que ne remplissait pas/bien/facilement les langages déjà existants.


 
Tu as peut être raison, mon code n'est peut être pas très agréable à lire, je vais travailler dessus pour l'améliorer... Le besoin que rempli ce langage, c'est entre autre le désire d'apprendre rapidement à faire des choses fonctionnelles, comme en C/C++ ou encore Java, mais en plus simple, car je tente d'apprendre ces langages, mais c'est compliqué, les tutos sont parfois mal expliqués. Par contre, pourrais me dire un plus clairement ce que tu entends par "verbeux" ? (j'accepte les critiques, c'est ce qui me fait avancer, c'est simplement pour tenter d'améliorer ça :)).
 
Voilà, je me mets dès maintenant à travailler sur mon code !  
 
A bientot


---------------
Hacker n'est pas du vol,
Reply

Marsh Posté le 27-10-2010 à 14:17:00    

Verbeux = beaucoup de mots/instructions pour réaliser un algo là ou certains langages sont beaucoup plus concis pour faire la même chose.
 
Faut pas oublier un truc : derrière un langage de dév, y'a la notion de productivité. Si ça prend 2 fois plus de temps à apprendre le langage puis taper du code par rapport à un autre, ça être difficile de le rendre attractif. Donc soit y'a de outils qui permettent d'accélérer la production, sois y'en a pas et auquel cas, faut un langage pas trop verbeux...
 
ex : en delphi (pascal), pour un bloc, faut écrire begin.....end; là où en C/C++ et d'autres langages, on met juste {....}. Tes define....end define me font penser à ça.

Message cité 1 fois
Message édité par rufo le 27-10-2010 à 14:18:11

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-10-2010 à 14:58:05    

@hack39 : Regarde Ruby et/ou Python comme langage. Tu verras que ce que tu n'aimes pas dans Java et C++ a été (en grande partie) simplifié/enlevé dans ces langages


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-10-2010 à 16:20:53    

esox_ch a écrit :

@hack39 : Regarde Ruby et/ou Python comme langage. Tu verras que ce que tu n'aimes pas dans Java et C++ a été (en grande partie) simplifié/enlevé dans ces langages


 
Je commence à programmer en Python, c'est un langage assez simple, mais malheureusement je n'arrive pas à créer facilement d'application en console interactive, donc j'espère, avec le Freeway, permettre de faire rapidement et simplement ce type d'application... Et si jamais vraiment il n'y ca aucune utilité de créer ce langage, rien n'est perdu, ça sera un défi personnel ;) Mais je tente quand même le coup, on sait jamais !


---------------
Hacker n'est pas du vol,
Reply

Marsh Posté le 27-10-2010 à 16:22:12    

ça m'étonne un peu... En tous cas en Ruby c'est extrêmement facile de créer ce genre de système..
Et ça me semble un peu overkill de créer un langage uniquement pour ce genre de truc..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-10-2010 à 16:22:12   

Reply

Marsh Posté le 27-10-2010 à 16:25:37    

rufo a écrit :

Verbeux = beaucoup de mots/instructions pour réaliser un algo là ou certains langages sont beaucoup plus concis pour faire la même chose.
 
Faut pas oublier un truc : derrière un langage de dév, y'a la notion de productivité. Si ça prend 2 fois plus de temps à apprendre le langage puis taper du code par rapport à un autre, ça être difficile de le rendre attractif. Donc soit y'a de outils qui permettent d'accélérer la production, sois y'en a pas et auquel cas, faut un langage pas trop verbeux...
 
ex : en delphi (pascal), pour un bloc, faut écrire begin.....end; là où en C/C++ et d'autres langages, on met juste {....}. Tes define....end define me font penser à ça.


 
Je comprends, je vais tenter de travailler ça... Merci de la remarque ! :)


---------------
Hacker n'est pas du vol,
Reply

Marsh Posté le 27-10-2010 à 16:58:39    

Hack39 a écrit :


 
Je commence à programmer en Python, c'est un langage assez simple, mais malheureusement je n'arrive pas à créer facilement d'application en console interactive, donc j'espère, avec le Freeway, permettre de faire rapidement et simplement ce type d'application... Et si jamais vraiment il n'y ca aucune utilité de créer ce langage, rien n'est perdu, ça sera un défi personnel ;) Mais je tente quand même le coup, on sait jamais !


 
Le pb ne vient peut-être pas du langage de dév mais de l'interface entre la chaise et le clavier :/
 
Sinon, pour créer un nouveau langage de dév, j'imagine que le concept de grammaire LL (ou plus généralement de grammaires de Chomsky), ça te cause? Si c'est pas le cas, je pense que tu peux laisser tomber ton nouveau langage :o et je t'invite à lire cet article : http://fr.wikipedia.org/wiki/Gramm [...] ntextuelle


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-10-2010 à 22:38:38    

Mais il est implémenté déjà (en quel langage ? sources dispo?) ou c'est juste une tentative de syntaxe ?

Reply

Marsh Posté le 29-10-2010 à 13:47:29    

boblenain200 a écrit :

Mais il est implémenté déjà (en quel langage ? sources dispo?) ou c'est juste une tentative de syntaxe ?


 
Alors effectivement ce n'est qu'une tentative de syntaxe, avant de le compiler je voudrais savoir si au premier coup d'œil on comprend où sont les variables, leurs noms, leurs valeurs, les fonctions attribuées à ces dernières etc... S'il est verbeux (j'ai oublié de vous dire ce petit détail) c'est car je débute vraiment en programmation, je ne sais programmer qu'en Batch, PHP, HTML/XHTML, VBscript, Python, Ruby, bien que je continue de me perfectionner. Et je pense que pour un débutant, un langage simple passe par une syntaxe verbeuse, où il pourra vraiment comprendre les significations de certaines commandes sans avoir recourt à des commentaires... Mais bon, voilà, c'est un premier croquis, je vais l'améliorer ce petit bout de code. Ah, aussi, s'il est long, c'est car c'est dans cette partie que je déclare les variables, que je leur attribue des fonctions (leurs valeurs à ces variables) et les effets des fonctions sur la console, le texte, la barre de défilement, les boutons etc... Ensuite, le reste sera plus court, ça sera la présentation de tout ce qui a été déclaré plus haut, la mise en page quoi...
 

Reply

Marsh Posté le 29-10-2010 à 14:28:50    

Non, j'accroche pas.
 
je suis trop familiarisé à l'objet pour replonger dans ce qui semble du procédural un peu trop déclaratif :D


Message édité par Xxxaaavvv le 29-10-2010 à 14:29:03
Reply

Marsh Posté le 29-10-2010 à 18:53:19    

Hack39 a écrit :

 

Alors effectivement ce n'est qu'une tentative de syntaxe, avant de le compiler je voudrais savoir si au premier coup d'œil on comprend où sont les variables, leurs noms, leurs valeurs, les fonctions attribuées à ces dernières etc... S'il est verbeux (j'ai oublié de vous dire ce petit détail) c'est car je débute vraiment en programmation, je ne sais programmer qu'en Batch, PHP, HTML/XHTML, VBscript, Python, Ruby, bien que je continue de me perfectionner. Et je pense que pour un débutant, un langage simple passe par une syntaxe verbeuse, où il pourra vraiment comprendre les significations de certaines commandes sans avoir recourt à des commentaires... Mais bon, voilà, c'est un premier croquis, je vais l'améliorer ce petit bout de code. Ah, aussi, s'il est long, c'est car c'est dans cette partie que je déclare les variables, que je leur attribue des fonctions (leurs valeurs à ces variables) et les effets des fonctions sur la console, le texte, la barre de défilement, les boutons etc... Ensuite, le reste sera plus court, ça sera la présentation de tout ce qui a été déclaré plus haut, la mise en page quoi...

 



?????
Non mais tu connais le fonctionnement d'un compilateur (analyse syntaxique - grammaire LL/LR parser LALR ..etc.. génération de code, optimisations ..) ??
Parce que tu dis toi même que t'es débutant en programmation .. alors je comprends pas vraiment le but de définir une syntaxe (ce qui prend environ 1 minutes à faire) alors que tu n'as que très peu de chance d'aboutir à un langage fonctionnel (pas dans le sens du paradigme :o )


Message édité par boblenain200 le 29-10-2010 à 18:53:29
Reply

Marsh Posté le 29-10-2010 à 18:55:54    

En plus, le bout de code que tu montres n'a rien d'un langage fonctionnel amha ( çà ressemble plutot à un étrange langage impératif)


Message édité par boblenain200 le 29-10-2010 à 18:56:04
Reply

Marsh Posté le 29-10-2010 à 20:49:14    

Je dirais une espèce de langage déclaratif pour définir une machine d'état pilotant un moteur d'IHM.
Ca peut être un projet intéressant si c'est facilement interfaçable à des langages conventionnels.
Ceci dit, il existe des langages de script ayant un binding avec wxWidgets comme Python, Ruby, Lua, etc et fonctionnent très bien.


Message édité par el muchacho le 30-10-2010 à 10:58:09

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Sujets relatifs:

Leave a Replay

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