IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Comment créer un langage de programmation ?


Sujet :

Langages de programmation

  1. #1
    Provisoirement toléré
    Inscrit en
    Décembre 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 146
    Points : 70
    Points
    70
    Par défaut Comment créer un langage de programmation ?
    Mille merci, puisque vous lisez ces lignes c'est que vous êtes intérésser à mon soit disant IDEE.
    Bon, je cherche des cours et des explications pour créer un nouveau language de programmation, je crois que j'ai tous dit, et merci encore.
    Je me suis vu dans une glace hier, et c'était la première fois!
    La nouvelle c'est que je ne suis que moitié homme, l'autre moitié et hors service!
    PS: La partition de mon corps se fait verticalement!!

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ca risque de ne pas être une chose très aisée mais si tu y tiens... Il te faut des outils donc voici quelques liens:

    http://dinosaur.compilertools.net/
    http://ds9a.nl/lex-yacc/#download
    http://www.linux-france.org/article/devl/lexyacc/

    Puis je pense que tu peux voir pour le sujet de la Théorie des langages mais c'est un assez gros sujet qui est découpé en plusieurs modules donc tu as de la lecture devant toi.

    Pour finir tu vas avoir une très très grosse partie sur la conception même du langage que tu veux créer et donc définir la syntaxe, les règles de syntaxe et de sémantiques, etc... Suivant la compléxité que tu recherche et les fonctionnalités, ca peut s'avérer être un projet de plusieurs années


    Bon courage
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Alors, tu souhaites créer un langage de programmation, c'est quelque chose de réellement difficile. Ca dépend à quel point du souhaite le créer.

    Tu as déjà une grosse étape qui va consister à Compiler ton langage source vers un langage cible de plus bas niveau. Il faut définir le langage cible pour essayer de voir à quel point cela sera difficile (par exemple en C, en C++, ou en assembleur).

    Dans la phase de compilation, il y a plusieurs étapes : analyseur lexical (implémentable par un automate normal), analyseur syntaxique (implémentable par un automate à pile). Pour réaliser ceux-ci, tu peux utiliser des bibliothèques tout fait (disponible en C, java ou encore camL) tel que lex et yacc. Je viens de parler d'analyse syntaxique, cela requiert de déterminer la grammaire de ton langage (ce qui implique de connaître la théorie des langages également)
    Connaissance requise : Automate, automate à pile, théorie des langages (grammaires), techniques d'analyse syntaxique et lexical

    Ensuite vient la partie d'analyse sémantique, il n'y a, à ma connaissance, aucune bibliothèque permettant d'automatiser cela (il faut connaître certaines notions supplémentaires, tel que : table des chaines (implémentable par une table de hachage), table des symboles).
    Il faut donc connaître les notions de : analyse sémantique, table des symboles

    Ensuite, ça dépend un peu du langage cible. Tu peux par exemple convertir ton code en C.
    Parfois, on le convertit en code 3 adresses (dans ce cas, il y a des phases d'optimisation complexes). Puis en code assembleur (il y a encore des phases d'optimisation poussées et complexes).

    Si ton langage de départ est un langage de type fonctionnel ou logique, c'est encore plus compliqué. Il y a énormement de techniques pour rendre ce type de langage en langage impératif (d'autres sauront mieux te préciser ce point).



    Il y a des cours sur la théorie de la compilation en ligne (dans théorie des langages) :
    http://general.developpez.com/cours/

    Suivi les termes que j'ai mis en gras, tu verras le boulot que tu as à faire pour réaliser ce que tu souhaites. Et même en sachant ceci, ce n'est pas dit que ton langage soit bien (c'est à dire, performant, portable, disposant d'une bibliothèque standard assez complète, et même innovante). Mais ça fait un très bon exercice, même si c'est pas complet et pas innovant
    Je ne répondrai à aucune question technique en privé

  4. #4
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    De maniere interessante, les reponses deja donnees donnent des pistes principalement pour la realisation d'une implementation. La premiere etape (a laquelle Frank fait allusion), c'est de definir ton langage. Et pour etre capable de faire ca, il faut bien connaitre les langages semblables a celui que tu desires -- et etre capable d'articuler ce qui ne te convient pas chez eux -- et les theories qu'il y a derriere. Deux bouquins relativement abordables:
    - Concepts, Techniques, and Models of Computer Programming de Van Roi et Haridi pour la partie semantique
    - Types and Programming Languages de Pierce pour le systeme de type.

    Le sujet revient periodiquement sur Lambda the Ultimate, tu peux chercher dans leurs archives.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  5. #5
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Je me permet également de donner un chtit conseil, même si je n'y connais rien dans le domaine. Avant de créer un langage de programmation, comme l'a dit Jean-Marc, il faut que fasses un cahier des charges très précis, et que tu te demandes ce que ton langage pourra faire de "plus" que les autres. Par de plus, je n'entend pas forcément inventer un nouveau concept, mais faciliter ce que certains langages ne permettent que difficillement.

    Donc attarde toi sur le cahier des charges et sur la "conception" de ton langage avant de te lancer dans le code. Pendant ce temps, tu pourras étudier (si tu ne connais pas déjà le sujet bien entendu) tous les domaines qu'à cité millie.
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par @v@lon
    Bon, je cherche des cours et des explications pour créer un nouveau language de programmation, je crois que j'ai tous dit, et merci encore.
    Non, tu n'as pas tout dit : quelle est la finalité ? Est-ce un projet personnel juste destiné à te faire plaisir, un projet didactique, ou avec une visée plus amibitieuse, est-il destiné à une plateforme microprocesseur ou microcontrôleur, doit-il répondre à des contraintes particulières ?

    Non pas que la réponse à toutes ces questions va changer grand chose au fait que tu devras assimiler toutes les connaissances citées par millie, mais au moins cela permettra d'évaluer tes chances de réussite selon ton niveau de départ.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    ce serait cocasse si le langage que veut créer @v@lon existait déja

    quels sont les langages qu'il connait ?

    en quoi ces langages sont insatisfaisants ?

  8. #8
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Une seule question : pourquoi inventer un langage de plus ?

    En répondant à cette question, tu répondras à toutes les autres.
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Faudrait déjà qu'il réponde
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Patriarch24
    Une seule question : pourquoi inventer un langage de plus ?

    En répondant à cette question, tu répondras à toutes les autres.
    Personnellement, je trouve que c'est un excellent exercice de faire cela. Ca permet vraiment d'élargir ses connaissances dans le domaine de la Compilation.
    Je ne répondrai à aucune question technique en privé

  11. #11
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Personnellement, je trouve que c'est un excellent exercice de faire cela. Ca permet vraiment d'élargir ses connaissances dans le domaine de la Compilation.
    Absolument d'accord. Mais pourquoi ne pas commencer par étudier des langages déjà créés dans ce cas ?
    Enfin bref, @v@lon ne répondant pas, on n'en saura pas plus pour l'instant
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

  12. #12
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Patriarch24
    Une seule question : pourquoi inventer un langage de plus ?

    En répondant à cette question, tu répondras à toutes les autres.
    La réponse peut vraiment varié d'une personne à l'autre mais en général le but du jeu c'est de savoir "comment ça marche". C'est de ce genre de petites choses que sont parties des petits langages (aux grandes possibilités) comme Io. La simple volonté d'apprendre le BNF, de définir une grammaire après s'être décidé pour un (ou plusieurs!) paradigmes. Et enfin la phase d'implémentation.
    Je t'assure que la première fois que tu le fais, même qud ce n'est qu'un tout petit langage avec 5 mots clés mais que "ça marche" t'es vraiment content
    Un livre vraiment sympathique et pe plus accessible que celui de Van Roy au début c'est la réédition du LISP de Queinnec chez Paracamplus

  13. #13
    Provisoirement toléré
    Inscrit en
    Décembre 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 146
    Points : 70
    Points
    70
    Par défaut C'est pas simple d'être toujours là lorsqu'on est un soldat
    messieurs dames, permetez moi de vous dire que çe n'est pas simple pour moi, de me connecter sur internet au quotidien puisque je suis un officier élève au sein de l'academie royale militaire marocaine.
    En mettant cette question sur le forum de ce site, je m'attender à une douzaine de fichiers PDF, quelque sites web au des livre de 400 pages. Mais je vois que je vais aussi faire de l'economie.
    pour Franck.H ==> je vous remercie infiniment pour ces sites, mais je ne suis pas aussi bon en anglais (3eme année).
    Pour Millie ==> aucun reproche, c'est excellant.
    Pour Jean-Marc.Bourguet ==> un syntaxe fraçais, ou même arabe.
    Pour Woufeil ==> Je crois que c'est déjà fait, merci beaucoup.
    Pour GrandFather ==> C'est un projet entre élèves de l'academie militaire, une sorte de façon de dire à nos superieurs que nous ne sommes des simples soldats, sur tout que je suis en section electronique informatique, et je vais me spécialisé sur ce dernier, je veux que mon language soit sur une plateform microprocesseur, portable, simple à aprendre, extensible, et sur tout libre.
    Pour HRS ==> je metrise le VB 6.0 VB.NET, C/C++, un peut de Java et Python, pour VB6/.NET, pour Windows seulement, pour C/C++/Java il te faut une étérnité pour les apprendre, pour python pas assé de documentation sur le language.
    Pour Patriarch24 ==> Pourquoi il y'a plusieurs marques de voitures? et pour les languages déjà créer, c'est pas mon truc de recopier.
    Pour Gnux ==> C'est pour celà qu'on fait encore des bébés.
    Bref merci à vous tous, je suis toujours en attente de vos reponces, et je vous promet d'être plus souvent sur le forum.
    .:Les forum sont faites pour developpez les idées pas pour les détruire:. proverbe créer par mon frère
    Je me suis vu dans une glace hier, et c'était la première fois!
    La nouvelle c'est que je ne suis que moitié homme, l'autre moitié et hors service!
    PS: La partition de mon corps se fait verticalement!!

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut conclusion ?
    moi aussi je voudrais créer un langage de programmation pour internet , et un langage SGBD mais il n'y a pas vraiment de réponse ici pourrais-je en avoir une ?

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par @v@lon Voir le message
    Pour Jean-Marc.Bourguet ==> un syntaxe fraçais, ou même arabe.
    lol ce n'est pas ce qu'l voulait dire...

    En informatique "syntaxe" signifie l'ordre des "mots", des "phrases", des instructions en général...


    Par exemple, dans un langage procédural classique (style C, Fortran, ...), tu auras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Affiche_Objet ( CetObjet ) ...
    ...
    A = B

    Déjà, en Pascal, le signe "=" devient ":=" ..

    Et donc la ligne :

    se transforme en


    Maintenant, dans un langage objet, la "fonction" indiquée ci-dessus deviendra :

    Et figurera autant de fois qu'il y a de classes d'objets..



    De la même manière, dans la plupart des langages de haut niveau, les tests sont effectés suivant une écriture correspondant à :


    Le signe "=" pouvant être ":=", "==", ".EQ.", .....


    Mais par exemple dans un système de script shell comme ksh ou bash, ce sera plutôt :



    La syntaxe informatique consiste donc en la définition des signes ("=", "if", "["...),, la définition des instructions ("read", "open", "if"...), la définition de la construction des "phrases" lconsistuées avec ces instructions ("if ( a = b)", "open ( "fichier", "r")" ...), la définition des "latitudes" possibles pour écrire ces phrases (souplesse ou non d'écriture (changement de l'ordre des paramètres), concaténation de plusieurs instructions en une, possibilité de couper l'instruction sur plusieurs lignes, ....). Puis il faut la définition des constantes, du formattage des chiffres, des formats de sortie (impression à l'écran, écriture dans un fichier, lecture d'un fichier..).


    ça c'est uniquement la base de départ....


    Une fois ceci constitué, cela te permettra d'établir un "compilateur", qui passera au travers du "programme" (fichier texte) établi avec ce langage, et pourra en vérifier la syntaxe, et qui là pourra tenter de le formatter en interne pour finalement l'écrire en langage machine...



    Bref, la "syntaxe" informatique est déterminante et imposante à construire, que tu la fasses à partir du français, de l'anglais, ou de l'arabe, elle en est relativement indépendante...

    Elle définit ce que ton LANGAGE à toi fait et peut faire... (pas la LANGUE utilisée)





    PS : je viens juste de me rendre compte que le posteur précédent a déterré cette discussion... Bravo !!!! 3 ans d'enterrement .. Beau déterrage !!
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 928
    Points
    928
    Par défaut
    Citation Envoyé par feannor Voir le message
    moi aussi je voudrais créer un langage de programmation pour internet , et un langage SGBD mais il n'y a pas vraiment de réponse ici pourrais-je en avoir une ?
    Pourquoi veux tu créer un langage de programmation ? Qu'est ce qui ne te va pas dans l'offre existante ? Quelle est d'ailleurs ton niveau de connaissance de l'offre existante ? Quels sont les langages que tu as pratiqué ? A quel point as-tu cherché une solution existante à tes problèmes ?

    Une fois que tu auras exprimé ce qui ne te plait pas dans ce qu'il y a actuellement, qu'est ce que tu proposes pour l'améliorer ? Quelles sont tes idées d'innovations ? Quels sont exactement les buts de ton "nouveau langage" ? Les domaines précis d'application ?

    Quel genre de langage veux tu ? Typage statique, dynamique ? Si typage statique, types riches ou pauvre (tu comptes de limiter à string, int, bool, ou tu veux mettre des types abstraits, existentiels, fantômes, GADT, tu veux typer le html produit, les requêtes, etc.) ? Si typage dynamique, quel niveau de sureté à l'exécution ? A la php qui tente de faire "marcher" n'importe quel code ? Ou plus proche de langage plus récent qui ne vont pas convertir une chaine de caractère en entier juste "au cas où c'est ce que le programmeur voulait" ?

    Quel genre de modèle ? Modèle object, impératif, fonctionnel, logique, autre ?

    Il faut bien se rendre compte qu'on ne "crée" pas un langage à la C comme un langage à la List, comme un langage à la python ou comme un langage à la haskell. Et surtout, qu'il ne sert à rien de créer un langage si tu n'as pas une *très bonne* connaissance de l'existant, sinon tu as toutes les chances de simplement reproduire les mêmes erreurs, en sans doute bien pire !

    Mais quand tu auras répondu précisément à ces questions, on se fera un plaisir de te guider dans ta quête

  17. #17
    Membre régulier
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 44
    Points : 114
    Points
    114
    Par défaut
    Créer un nouveau langage de programmation (si on veut le faire sérieusement) est une tâche très ardue qui nécessitera énormément de temps et beaucoup de persévérance.

    Je me suis moi-même lancé dans cette aventure en 2006 en créant un langage de scripts destiné à être intégré dans un logiciel de gestion commerciale. Ce langage, fortement inspiré de Lisp et de Scheme, a été intégré au logiciel (la version de cette époque là) en 2008. Il a donc fallu 2 ans pour que celui-ci puisse être utilisé en situation réelle. Attention, jusque là, ce n'était que de l'automation (les scripts sont des macros qui permettent de configurer et de réaliser certaines tâches relativement simples). Il s'agissait d'un projet propriétaire, comme d'ailleurs le logiciel de gestion commerciale auquel il était intégré.

    En 2009, j'ai décidé de créer une nouvelle branche de développement basée sur ce langage (dont je suis l'auteur) et de le rebaptiser "Abstrasy". Il s'agit à présent d'un projet open-source sous licence EUPL (licence publique de l'union européenne).

    Les objectifs aussi ont évolués. Outres les aspects théoriques et pédagogiques liés inévitablement à ce genre de projet, il s'agit de développer et d'étoffer le langage de manière à le rendre autonome, extensible, bref le plus complet possible.

    Un travail énorme a déjà été réalisé. Si on considère que le projet est démarré depuis la première version propriétaire, j'y travaille depuis juin 2006. Je continue toujours, et ce qui reste à faire est colossal.

    Si vous souhaitez créer un nouveau langage de programmation, dites vous que c'est un travail énorme. Mais d'un autre coté, on y gagne énormément en connaissances et en expériences (on est obligé de s'élargir, de bien comprendre et d'intégrer les différentes théories et modèles). Vous en aurez aussi pour des années avant d'obtenir un résultat, disons "présentable"...

    A présent, si vous souhaitez participer au développement d'un nouveau langage de programmation, là, c'est différent. Vous pourrez peut-être vous rendre utile en devenant contributeur. C'est déjà pas mal du tout et surtout, plus facilement accessible. Vous n'aurez peut-être pas tout créé, mais vous aurez participé.

    Bien entendu, pour cela, vous devrez vous familiariser avec ce langage. Peut-être sans disposer de toute la documentation, parce que celle-ci est toujours en cours de rédaction (généralement des documentations très volumineuses). C'est très instructif et vous ne manquerez pas d'y gagner en expériences et serez "forcé" de vous élargir en sortant des sentiers battus (C, Java, C#, etc...) en appréhendant des modèles moins connus mais très puissants.

    Pour vous faire une idée, pourquoi ne pas aller sur http://www.abstrasy.net. Il s'agit du site officiel du langage que je développe. Découvrez-le et si vous le souhaitez, vous pourrez peut-être vous proposer pour devenir contributeur. C'est un projet open-source (un interpréteur, langage multi-paradigmes, plus de détails sur le site).

  18. #18
    Membre régulier Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    Perso, moi aussi j'aimerai créer un langage de programmation.
    J'aimerai que ce langage soit développé en vb.net.
    Ce langage sera pour créer des applications consoles, et graphiques ainsi que des dll.

    Bref ce langage devra t'être riche en mots-clés et etc.
    J'attends une réponse avec impatience.

  19. #19
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce qu'il faut surtout prévoir, ce n'est pas seulement le langage lui-même, mais aussi la première implémentation que tu comptes lui donner:
    1. Interpréteur (peut être développé dans n'importe quel langage, ne nécessite pas de compilateur externe pour fonctionner).
    2. Compilateur vers un langage de plus bas niveau (aussi appelé transcompilateur, ou transpiler en Anglais): Convertit le langage de base en C, assembleur, etc., puis appelle un compilo existant pour en faire un exécutable: Nécessite que le compilo existant soit installé.
    3. Compilateur complet vers un exécutable: Nécessite une connaissance étendue de l'architecture cible (jusqu'aux codes binaires que le processeur exécute, plus le format d'exécutable utilisé par l'OS cible).

    Selon les cas, la plupart des gens choisissent soit l'option 1, soit l'option 2 par-dessus gcc ou LLVM.

    L'implémentation prévue peut avoir une influence sur le langage lui-même et ses capacités: Les langages interprétés sont bien plus appropriés (implémentation beaucoup plus facile, etc.) pour des choses comme le typage dynamique, etc.




    Pour en revenir à ta question, qu'est'ce qui est "développé en vb.net"? 1, 2 ou 3?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  20. #20
    Membre régulier Avatar de Tornade8912
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    Ce qui sera codé en vb.net ça sera un compilateur vers un langage C (bas niveau). Mais j'ai quelques questions à propos de l'interpréteur :
    - L'interpréteur fonctionne t-il plus ou moins comme Java c'est à dire avec son propre format de fichier (ex : .jar) ?
    - Si l'interpréteur fonctionne sans compilateur externe, le fonctionnement d'un interpréteur est-il comme le BATCH qui n'a pas besoin de compilateur pour fonctionner ?
    Si je comprends bien, cmd fonctionne comme un interpréteur c'est à dire qu'il exécute des fichiers de code sans compilation. Mais est-il possible de faire la même
    chose mais pour des applications graphiques ?

Discussions similaires

  1. Comment créer un langage de programmation?
    Par Terfas dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 06/01/2015, 10h53
  2. Réponses: 1
    Dernier message: 01/05/2013, 21h56
  3. Comment créer des ALIAS par programme
    Par HASSIOMAR dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/11/2010, 09h30
  4. Créer un langage de programmation pour ensuite interpréter du PHP
    Par psgkiki dans le forum Langages de programmation
    Réponses: 12
    Dernier message: 25/06/2008, 10h08
  5. Comment créer plusieurs TEdit par programmation?
    Par rebelor dans le forum Delphi
    Réponses: 2
    Dernier message: 02/06/2007, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo