Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1814 connectés 

  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Mon nouveau langage de programmation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mon nouveau langage de programmation

n°2032470
Hack39
Posté le 27-10-2010 à 01:35:11  profilanswer
 

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,
mood
Publicité
Posté le 27-10-2010 à 01:35:11  profilanswer
 

n°2032473
el muchach​o
Comfortably Numb
Posté le 27-10-2010 à 07:25:53  profilanswer
 
n°2032481
Hack39
Posté le 27-10-2010 à 08:14:31  profilanswer
 

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,
n°2032509
esox_ch
Posté le 27-10-2010 à 10:44:52  profilanswer
 

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
n°2032547
rufo
Pas me confondre avec Lycos!
Posté le 27-10-2010 à 13:12:40  profilanswer
 

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
n°2032567
Hack39
Posté le 27-10-2010 à 14:11:17  profilanswer
 

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,
n°2032571
rufo
Pas me confondre avec Lycos!
Posté le 27-10-2010 à 14:17:00  profilanswer
 

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
n°2032578
esox_ch
Posté le 27-10-2010 à 14:58:05  profilanswer
 

@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
n°2032587
Hack39
Posté le 27-10-2010 à 16:20:53  profilanswer
 

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,
n°2032588
esox_ch
Posté le 27-10-2010 à 16:22:12  profilanswer
 

ç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
mood
Publicité
Posté le 27-10-2010 à 16:22:12  profilanswer
 

n°2032591
Hack39
Posté le 27-10-2010 à 16:25:37  profilanswer
 

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,
n°2032602
rufo
Pas me confondre avec Lycos!
Posté le 27-10-2010 à 16:58:39  profilanswer
 

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
n°2032722
boblenain2​00
Posté le 27-10-2010 à 22:38:38  profilanswer
 

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

n°2033098
Hack39
Posté le 29-10-2010 à 13:47:29  profilanswer
 

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...
 

n°2033122
Xxxaaavvv
Posté le 29-10-2010 à 14:28:50  profilanswer
 

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
n°2033199
boblenain2​00
Posté le 29-10-2010 à 18:53:19  profilanswer
 

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
n°2033200
boblenain2​00
Posté le 29-10-2010 à 18:55:54  profilanswer
 

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
n°2033215
el muchach​o
Comfortably Numb
Posté le 29-10-2010 à 20:49:14  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Mon nouveau langage de programmation

 

Sujets relatifs
programmation en VBAprogrammation eprom
Programmation et SSD ....cours programmation script sous Unity 3D
programmation javaProgrammation commande windows
[Perl] - Programmation objet et debuggerRenseigner par programmation un Formulaire
Reprise de la programmation: questions diversesse lancer dans un nouveau langage de programmation. orientez moi.
Plus de sujets relatifs à : Mon nouveau langage de programmation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR