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

Générateurs de compilateur Discussion :

créer mini compilateur


Sujet :

Générateurs de compilateur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 0
    Points
    0
    Par défaut créer mini compilateur
    Salut tout le monde.
    je suis un étudiant en informatique. je connais un peu les bases de la programmation surtout en c++. mais je veux m’améliorer. alors je cherche quelqu'un qui pourrai m'apprendre un peu de tout sur l'informatique. je veux me focaliser sur la POO. mais maintenant j'ai comme projet la conception d'un compilateur (un mini). alors si quelqu'un peut m'aider je serai très ravis d’être son élève. malheureusement je ne peux avoir le temps que les journées de vendredi et samedi.
    Si il y en a quelqu'un je vais lui donner mon compte SKYPE car je pense que ça sera plus efficace.
    je parle bien le français et un peu moins l'anglais.
    merci. et je souhaite une réponse positive

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Salut
    - intention louable, mais concrètement t'es au niveau 0 ?
    - nous sommes là pour aider, pas pour réaliser tes projets
    - nous sommes bénévoles, nous n'allons pas te tenir la main pour le moindre ;
    - le site possède une FAQ C++, des tutoriels et cours C++
    - sinon Google existe encore
    - commence par montrer ce que tu as, si tenté que tu aies quelque chose
    - moi je souhaite un pain au chocolat
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Si tu cherches bien, il y a des projets et cours d'écriture de compilateurs sur la page perso de profs de la fac Paris-sud (ou Orsay).
    J'y étais passé, mais j'ai pas vraiment réussi le projet.
    Par contre, les cours sont assez utiles
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    Il y a environ 10 ans j'avais acheté ce livre http://www.amazon.fr/Compilateurs-ex...s=compilateurs
    Il est très bien dans le sens où ce n'est pas uniquement un livre théorique. Il y a la réalisation de cas pratiques, d'algorithmes, et d'un petit compilateur.

    Je m'étais aussi intéressé au compilateur pour microcontrôleur mais pas qu'à ça, je savais que les compilateurs utilisaient beaucoup d'algorithmes très très intéressants (les arbres abstraits, les tables de hachages, des outils d'analyses sémantiques et lexicales comme avec Flex et Bison et bien d'autres choses très riches...) Par contre, il faut un bon niveau en programamation pour suivre ce livre et de mémoire beaucoup d'exemples sont en C.

    Afin que tu mesures bien l'ampleur du projet, voilà ce que moi je m'étais fixé, tu verras c'était très modeste :
    - Un compilateur minimaliste et C pour microcontrôleur Motorola 68HC11, à l'époque j'avais un grande maîtrise de l'assembleur sur cette cible.
    - Le compilateur n'était pas sensé supporter tout le langage C car cela aurait été trop prétentieux. De mémoire il devait supporter qu'une toute petite partie, une seule type de boucle ("while"), deux types de variables ("char" et "int") etc...
    - Le compilateur devait prendre en charge l'analyse des expressions mathématiques (4*(2+1) etc...) ou manipulation binaire ("0x0F << 0x03")
    - Je n'avais pas prévu d'algorithme d'optimisation.
    - Vérifier que le code C, après compilation, génère bien le bon code Assembleur et qu'il soit compatible avec la cible (par exemple, souvent sur un microcontrôleur le mot clé "const" devant un variable en C, créait un espace en mémoire morte et pas en vive puisque c'est un constante qui n'est pas destiné à être modifié)

    Très vite, je me suis rendu compte que pour faire un compilateur C (codé en langage C) vers Assembleur Motorola, il fallait au préalable avoir une grande maîtrise de ces deux langages + de l'architecture de la cible !

    Si tu veux coder un compilateur C++ (en C++) vers de l'assembleur sur un PC, il te faudra avoir une grande maîtrise du C++, de l'assembleur et de l'architecture du PC (pile, tas, etc...)

    Je n'ai jamais fini mon compilateur et pourtant j'avais bien avancé. Ce fut un exercice très enrichissant.

    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 0
    Points
    0
    Par défaut compilateur
    Bonjour
    Je ne souhaite que d’éventuels conseils pas plus. Et bien sur je veux faire perdre le temps à personne mais je mentirai si je dis que je ne souhaite pas plus d'aide de la part de quelqu'un. J'ignore si j peux vous être utile pour l'instant ou de vous offrir quoique ce soit mais je ferai de mon mieux.
    Merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Points : 31
    Points
    31
    Par défaut
    Commence par réussir à évaluer une expression avec des parenthèses et les quatre opérations (+,-,*, /). C'est pas aussi simple que ça en a l'air. Il te faudra utiliser la récursivité.

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Citation Envoyé par lefsih Voir le message
    Bonjour
    Je ne souhaite que d’éventuels conseils pas plus. Et bien sur je veux faire perdre le temps à personne mais je mentirai si je dis que je ne souhaite pas plus d'aide de la part de quelqu'un. J'ignore si j peux vous être utile pour l'instant ou de vous offrir quoique ce soit mais je ferai de mon mieux.
    Merci
    Non, personne ne te demandera quelque chose en retour, là n'est pas la question. C'est juste que nous pensons tous que tu ne mesures pas du tout l'ampleur du travail que devra fournir ton accompagnateur. Même avec la meilleur volonté du monde, personne ne peut entreprendre une telle chose.

    Je ne mets pas en doute tes capacités, ce n'est pas ça.
    Mais pour te donner un exemple c'est comme ci moi, ancien professionnel de l'électronique, j'accompagnais une personne n'ayant que des notions d'électronique sur un gros projet (car un compilateur est un gros projet.)
    Il faudrait que j'apprenne a cette personne :
    - tout le cursus de première électronique pour qu'il ait les bases en mathématique/physique/électronique. (1 an d'étude a assimiler)
    - tout le cursus de terminal électronique pour que l'on se mette à parler le même langage et pour se comprenne en mathématique/physique/électronique (1 an d'étude a assimiler)
    - tout le cursus de BTS électronique pour qu'il apprenne a résoudre des problèmes complexes en mathématique/physique/électronique (2 ans d'études)

    Comme dans quasiment tout projet électronique, il y a de l'informatique embarqué dans le ou les micro-contrôleurs
    Donc il faudrait que j'apprenne en plus à cette personne :
    - tout le cursus que ferait un informaticien pour, coder, maîtriser un lan le traitement du signal/les résolutions de problèmes sur des données/matrices/tableau/arbre (4 ans, de la première au BTS)

    En gros, via skype, il faudrait que je fasse assimiler à cette personne 8 années d'études (à raison de 8h/jours) dans 2 disciplines différentes et tu peux ajouter à ça les nombreuses questions qui seront posées. C'est clairement impossible.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut,

    le projet LLVM (en gros, le projet qui s'occupe du compilateur clang) fournit un tutoriel très intéressant pour débuter: le projet kaléidoscope.

    Il est en anglais, mais assez facile à comprendre . Commence peut être par là, ce devrait être une base relativement bonne
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Help me please !
    Par sheva007 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/04/2007, 05h39
  2. help jbuilder please
    Par blackcrow1981 dans le forum JBuilder
    Réponses: 6
    Dernier message: 10/11/2006, 18h05
  3. Réponses: 2
    Dernier message: 21/03/2005, 10h17

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