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

C++ Discussion :

Compilation (Principe)


Sujet :

C++

  1. #1
    Sh.
    Sh. est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 28
    Par défaut Compilation (Principe)
    voila j' aimerai savoir suivant qu' elle principe un compilateur compile t' il le code cpp merci

    (je suppose que c' est mal placé dsl les admins )

  2. #2
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    ca c interessant comme question!
    dans un premier temp je crois que le code est parser apres aucune idee...

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    C'est un sujet (plus ou moins) complexe, recherche un cours de compilation sur le net.
    En gros ça passe par un analyseur lexical, un analyseur syntaxique, un traducteur en code assembleur, un optimisateur, ...

    A moins que ta question soit plus précise (auquel cas développe un peu) ?

  4. #4
    Sh.
    Sh. est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 28
    Par défaut
    bin je voulais savoir quel sont les étapes de la compilation, c' est bien 'bô' de voir, compilation en cours, si on ne comprend pas le mécanisme enfin c' est une question de curiosité mais bon si je trouve un tuto assez detailler pourquoi pas essai de faire un compilateur de 'Hello World !'

    (la je fantasme) loul

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Des outils tels que Lex/Yacc (ou Flex/Bison maintenant) permettent de construire un analyseur lexical et un analyseur syntaxique. Avec ça tu peux déjà te faire un petit langage. Sinon sur Flipcode il y a un tutoriel en 9 parties expliquant de manière très simple mais néanmoins complète comment construire (et faire tourner) un langage de script. Je l'avais trouvé très bon.

  6. #6
    Sh.
    Sh. est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 28
    Par défaut
    merci bien je vais regarder ca

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et bien sûr dans la catégorie analyseurs lexical/syntaxique, n'oublions pas boost::spirit pour ne pas froisser Luc (ceci dit, pour peu qu'on possède un compilo pas trop rouillé, ça a l'air vraiment puissant. Rien à voir avec Flex/Bison, avec qui on se donne bien du mal en C++).

  8. #8
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    il ne suffit pas de parser le code pour creer un executable...
    meme pour un langage de script il doit y avoir un code pour interpreter et executer les donne que le parser a "extrait"

    t a pas l adresse du tuto sur flipcode?

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Rien ne t'empêche de faire ton interpreteur en C++ après (ou n'importe lequel de tes langages préférés). Evidemment pour produire un executable en code machine, là c'est une autre paire de manches !

    Je vais voir si je retrouve le tuto.

    [Edit] Voilà : http://www.flipcode.com/articles/scripting_issue01.shtml

  10. #10
    Sh.
    Sh. est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 28
    Par défaut
    j' ai trouver plusieur liens
    merci google ( building your own compiler )

    http://www.thefreecountry.com/programming/compilerconstruction.shtml

    et cela grace a toi loulou24

    http://translate.google.com/translate?hl=fr&sl=en&u=http://dinosaur.compilertools.net/&prev=/search%3Fq%3DFlex/Bison%26hl%3Dfr%26lr%3D%26sa%3DG

    maintenant si vous avez d' autre information ^^

  11. #11
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    merci

    actuellement j utilise lua ( et je crois que ca represente quand meme pas mal de boulot de faire un langage de script )
    c qu est terrible dans ce langage c est que tu peu appeler depuis du code c++ du lua et que tu peu aussi appeler du code c++ depuis lua (meme "binder" des classe)
    avec ca et un parser xml je m amuse a faire une gui entirement configurable et scriptable

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Sinon pour ce qui est de la théorie, un bon cours de compilation d'université sera le mieux je pense, histoire de savoir ce qu'est une grammaire LALR ou un automate à états .

  13. #13
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    hors suject

  14. #14
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut

    boost::spirit me parait aussi très intéressant ... pour des langages simples. Il me semblait qu'il avait quelques limitations -- autre que son exigence. (à vérifier)
    Plus "ouvert" et toujours orienté C++, il y a ANTLR. Projet Java dont le port C++ m'avait paru un chouilla buggué lorsque je l'avais testé.

    Sinon, il faut effectivement lorgner du côté des cours de compil'/théorie des langages qui sont dispensés en facs et écoles si tu veux savoir comment ça marche vraiment.
    Ou suivre les liens donnés depuis les références données dans ce fil. Je sais qu'il y a un bouquin de référence qui est très bien, mais je ne me souviens jamais de ses auteurs.

    Dans mes souvenirs, le sujet a déjà été "débatu" dans le forum algos.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  15. #15
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Le bouquin de référence (surnomé le dragon book) est celui écrit par Aho, Sethi, Ullman. Il est relativement ardu.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  16. #16
    Sh.
    Sh. est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 28
    Par défaut
    je tien a montrer ceci :

    http://www.thefreecountry.com/compilers/cpp.shtml

    une grande liste de compilateur je pense que ca pourrai etre utilie pour ceux qui en cherche un gratuit ou pour completer la liste du site si il y a des nouvaux

    la source du célèbre dev cpp


    http://ovh.dl.sourceforge.net/sourceforge/dev-cpp/devcpp4src.zip

  17. #17
    Membre éprouvé
    Inscrit en
    Novembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 120
    Par défaut
    la source du célèbre dev cpp
    Dev-Cpp n'est pas un compilateur, c'est un IDE. Le compilateur sous-jacent, c'est GCC.

  18. #18
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    C'est MingW plus exactement.

  19. #19
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    C'est bien GCC le compilateur. GCC version MinGW, mais GCC. MinGW est l'une des distributions d'outils et bibliothèques de type libre pour Windows.
    Quant à dev-cpp, il distribue un bout de MinGW.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  20. #20
    mat.M
    Invité(e)
    Par défaut Re: Compilation (Principe)
    Citation Envoyé par Sh.
    voila j' aimerai savoir suivant qu' elle principe un compilateur compile t' il le code cpp merci

    (je suppose que c' est mal placé dsl les admins )
    Loulou24 a déja énoncé les principes .

    C'est TRES très complexe à développer , c'est ce que je suis en train de faire en ce moment ( interpréteur basic pour le moment car language C c'est assez difficile )

    meme pour un langage de script il doit y avoir un code pour interpreter et executer les donne que le parser a "extrait"
    oui il faut construire une sorte de Virtual Machine comme avec Java ou .NET , une sorte de pseudo-assembleur.
    On peut s'inspirer des spécifications de Sun sur la JVM mais c'est très complexe.

    Donc la première phase c'est d'analyser le code de le vérifier puis de générer une sorte de language assembleur pseudo ou non ( assembleur 386 pour un véritable exe ) grossièrement.

    Pour l'analyse du code source il faut avoir recours à des arbres binaires qui "stockent" la grammaire

    Références :

    Aho ,Sethi Ullman Compilers ( déjà cité ): Principles , Techniques and Tools chez Addison-Wesley.

    A mon goût il est un peu trop généraliste d'après ce que j'ai vu et pas assez pratique

    Sinon je possède celui de Kenneth C.Louden "construction de compilateurs" chez http://www.studentbookworld.com/BookDetail/0534939724.html ,
    http://www.cs.sjsu.edu/faculty/louden/

    36 euros assez axé sur la pratique avec un code source de compilateur C et avec un cours théorique.

    Chez Eyrolles tout cela doit pouvoir s'acheter


    Sinon il y a aussi Seer :
    http://home.elka.pw.edu.pl/~ppodsiad/seer/

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2013, 08h09
  2. Réponses: 12
    Dernier message: 06/06/2006, 18h22
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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