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
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 364
    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 694
    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 694
    Points : 188 894
    Points
    188 894
    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.

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 408
    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 408
    Points : 20 542
    Points
    20 542
    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 382
    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 382
    Points : 41 588
    Points
    41 588
    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).

  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, 09h41
  2. Réponses: 20
    Dernier message: 28/01/2006, 12h27
  3. aide sur la compilation d'un programme console
    Par angelo2 dans le forum MFC
    Réponses: 6
    Dernier message: 18/10/2005, 08h44
  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, 16h05

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