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 :

Étapes de compilation d'un programme : identique selon le langage de programmation ?


Sujet :

Langages de programmation

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 355
    Points : 0
    Points
    0
    Par défaut Étapes de compilation d'un programme : identique selon le langage de programmation ?
    bonjour,

    J'ai vu ceci:
    https://definir-tech.com/app2/6745/q...d-un-programme

    A mon avis,les étapes de comilation d'un programme différent selon:
    -le type de compilateur
    -le type de langage

    Est-ce exact?
    Aussi,je voudrais savoir si,quelque soit le type de langage utilisé,on passe vers la fin à l'assembleur?
    Je pose cette question car tout programme exécutable est désassemblable(transformable en assembleur),non?


    merci de votre aide

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Peu ou prou, tous les compilateurs sont organisés de la même manière, en produisant une sortie beaucoup plus concrète que l'entrée, plus proche du matériel. Tu as une analyse lexicale, puis une analyse syntaxique, puis une analyse sémantique, puis une génération de code. Évidemment, les détails changent en fonction des langages (certains ont une analyse syntaxique extrêmement simple, comme LISP, d'autres ont décidé de jouer avec le diable, comme C++).

    Dans un sens, c'est toujours de l'assembleur qui est généré, mais pas forcément pour la machine locale : en Java, on génère un bytecode exécuté par la machine virtuelle Java (JVM), avec ses propres instructions, par exemple.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 379
    Points
    20 379
    Par défaut
    Citation Envoyé par tabkelm Voir le message
    Aussi,je voudrais savoir si,quelque soit le type de langage utilisé,on passe vers la fin à l'assembleur?
    soit du code assembleur i386 soit du bytecode comme l'écrit mon prédecesseur pour une JVM ou du Intermediate Langage comme en .NET

  4. #4
    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
    D'un autre côté, il y a de nos jours des déviations de cette norme: Par exemple, la link-time code generation qui retarde la génération du vrai code assembleur jusqu'à l'édition de liens (pour faciliter des optimisations comme l'inlining).
    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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2022
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    je me permets d'ajouter ceci:
    il y a d'abord eu les interpréteurs en ligne (comme le basic à ses débuts) qui traduisent et exécutent chaque ligne comme une commande à part entière
    ensuite il y a eu des compilateurs qui, après analyse lexicale, syntaxique, etc., génèrent du code machine (donc lié à la machine)
    et en dernier, une sorte d'hybride qui génèrent du pseudo-code interprété par des Machines Virtuelles (comme JVM ou Lisp Virtual Machine). Mais ces machines virtuelles ont fatalement une partie liée à la machine sur laquelle elles tournent. C'est pour ça que quand tu télécharges une JVM, tu précises si c'est pour Mac ou Windows.

Discussions similaires

  1. Compilation d'un programme sous Linux
    Par Tymk dans le forum FMOD
    Réponses: 6
    Dernier message: 03/07/2008, 08h41
  2. Réponses: 20
    Dernier message: 28/01/2006, 11h27
  3. aide sur la compilation d'un programme console
    Par angelo2 dans le forum MFC
    Réponses: 6
    Dernier message: 18/10/2005, 07h44
  4. compilation d'un programme à partir d'un autre programme??
    Par Naruseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/08/2005, 15h05

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