Mon nouveau langage de programmation - Langages fonctionnels - Programmation
Marsh Posté le 27-10-2010 à 07:25:53
A quoi ça sert ?
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 !
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 ?
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.
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... |
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
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.
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
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 !
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..
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. |
Je comprends, je vais tenter de travailler ça... Merci de la remarque !
Marsh Posté le 27-10-2010 à 16:58:39
Hack39 a écrit : |
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 et je t'invite à lire cet article : http://fr.wikipedia.org/wiki/Gramm [...] ntextuelle
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 ?
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...
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
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 )
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)
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.
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à ).
Sur ce, je vous souhaite à toutes et à tous une très bonne nuit !
---------------
Hacker n'est pas du vol,