interprété et compilé.
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

interprété et compilé.



  1. #1
    Abu Maria.

    interprété et compilé.


    ------

    bonsr
    je suis débutant dans la programmation , et j'aimerai savoir avec simplicité et détail-je sais que c'est difficile de détailler et de simplifier,désolé- quelle est la différence entre un langage interprété et un langage compilé ?
    par ex
    matlab est un langage interprété , et ils disent que le compilé est + rapide , pourquoi matlab est un langage interprété , et il est un langage de calcul , donc on a besoin de la rapidité ???
    désolé si c'est mal écrit
    merci d'avance

    -----

  2. #2
    JPL
    Responsable des forums

    Re : interprété et compilé.

    On écrit toujours un programme dans un langage compréhensible pour un humain (enfin... si on connaît la syntaxe de ce langage). Par contre le processeur est incapable de comprendre ce langage : il lui faut un code binaire qui va manipuler les registres, faire fonctionner des portes logiques, pointer des adresses en mémoire.

    Il existe donc deux solutions pour passer d'un langage à l'autre :

    Soit on demande à un programme appelé compilateur de transformer le langage compréhensible par l'humain en un fichier contenant uniquement du binaire. On a donc un exécutable qui va pouvoir piloter directement le processeur.
    Soit on garde le programme sous une forme lisible par les humains et c'est un autre programme (interpréteur) qui se charge de le traduire à chaque utilisation en langage machine. À chaque exécution il y a donc cette étape de traduction qui prend du temps. En outre le code machine obtenu sera moins optimisé qu'avec un compilateur car c'est une traduction à la volée. Par contre, avantage, on peut toujours revenir sur ce qu'on a écrit pour le modifier et l’améliorer.

    Tous les logiciels qui utilisent des langages de scripts se comportent comme des interpréteurs.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    Abu Maria.

    Re : interprété et compilé.

    Citation Envoyé par JPL Voir le message
    On écrit toujours un programme dans un langage compréhensible pour un humain (enfin... si on connaît la syntaxe de ce langage). Par contre le processeur est incapable de comprendre ce langage : il lui faut un code binaire qui va manipuler les registres, faire fonctionner des portes logiques, pointer des adresses en mémoire.
    merci

    Citation Envoyé par JPL Voir le message
    Il existe donc deux solutions pour passer d'un langage à l'autre :

    Soit on demande à un programme appelé compilateur de transformer le langage compréhensible par l'humain en un fichier contenant uniquement du binaire. On a donc un exécutable qui va pouvoir piloter directement le processeur.
    pourquoi ici le programme n'est pas gardé sous langage haut niveau?
    Citation Envoyé par JPL Voir le message
    Soit on garde le programme sous une forme lisible par les humains et c'est un autre programme (interpréteur) qui se charge de le traduire à chaque utilisation en langage machine. À chaque exécution il y a donc cette étape de traduction qui prend du temps. En outre le code machine obtenu sera moins optimisé qu'avec un compilateur car c'est une traduction à la volée. Par contre, avantage, on peut toujours revenir sur ce qu'on a écrit pour le modifier et l’améliorer.
    donc on aura toujours a passer par un compilateur , et c'est quoi cette traduction a la volée?

    merci

  4. #4
    Jack
    Modérateur

    Re : interprété et compilé.

    pourquoi ici le programme n'est pas gardé sous langage haut niveau?
    Réponse ici:
    À chaque exécution il y a donc cette étape de traduction qui prend du temps. En outre le code machine obtenu sera moins optimisé qu'avec un compilateur car c'est une traduction à la volée
    donc on perd en efficacité en terme de rapidité principalement.

    donc on aura toujours a passer par un compilateur
    non justement, si c'est traduit à la volée.

    et c'est quoi cette traduction a la volée?
    Le programme écrit en langage de haut niveau est un fichier texte constitué d'instructions de haut niveau exécutées dans l'odre prévu par l'algorithme. A chaque fois qu'une instruction de haut niveau doit être exécutée, elle est traduite par l'interpréteur en instructions machines de bas niveau. A la volée veut donc dire au fur et à mesure contrairement au compilateur qui traduit TOUT le programme une fois pour toutes.

    Une analogie: tu écris un document en Français. Pour qu'il soit utilisé dans d'autres langues tu peux le faire traduire en un nouveau document écrit en anglais par exemple => compilateur Français Anglais
    Une autre solution: une personne lit le document écrit en français et le traduit oralement à son interlocuteur Anglais. Si l'Anglais a oublié un passage, il faudra nouveau faire la tradution orale => interprèteur Français Anglais

    A+
    Dernière modification par Jack ; 15/03/2011 à 09h59.

  5. A voir en vidéo sur Futura
  6. #5
    Abu Maria.

    Re : interprété et compilé.

    merci beaucoup
    juste une précision
    pour le compilateur
    une bonne fois pour toute == que chaque instruction est exécutée en même temps que l'autre , parallèlement c'est ca?
    pour l'interpréteur c'est instruction parés une autre
    et l'interpréteur donne le code que le compilateur donne ?
    le code machine c'est ca ?

  7. #6
    JPL
    Responsable des forums

    Re : interprété et compilé.

    Le compilateur comme l'interpréteur vont créer du code machine. Dans le cas du compilateur il en résulte un fichier binaire enregistré sur le disque dur (les exe de Windows, par exemple), qui est immédiatement exécutable par le processeur (rien à voir avec la question de savoir si c'est une programmation parallèle ou non). Par contre l'interpréteur fournit le code exécutable au fur et à mesure de sa lecture du fichier source. Le processeur doit faire dans ce cas un double travail : convertir une à une, grâce au compilateur, les instruction en langage de haut niveau en langage machine... et exécuter pas à pas ces bouts de code machine. Il est facile de concevoir que c'est nettement plus lent. De plus, comme cela a déjà été dit, l'interpréteur ne peut pas prendre le temps d'optimiser ce code machine (qui n'est jamais enregistré) contrairement à un compilateur qui peut prendre tout son temps pour le faire.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  8. #7
    Abu Maria.

    Re : interprété et compilé.

    c'est clair merci pour vos réponses JPL et jack
    juste une dernière chose
    pourquoi l'interpréteur exécute les instructions une après l'autre ?
    même si il n'enregistre pas le code machine , pourquoi il n'attend pas jusqu'à la fin pour compiler le programme?

  9. #8
    Jack
    Modérateur

    Re : interprété et compilé.

    pourquoi l'interpréteur exécute les instructions une après l'autre ?
    dans tous les cas, on ne peut exécuter les instructions que les unes après les autres (en monoprocessing)

    pourquoi il n'attend pas jusqu'à la fin pour compiler le programme?
    parce que dans ce cas l’interpréteur s'appellerait un compilateur.

    A+

  10. #9
    Abu Maria.

    Re : interprété et compilé.

    oui merci...

  11. #10
    b@z66

    Re : interprété et compilé.

    J'y vais aussi de mon explication.

    Dans le cas du compilateur, le programme source(de haut niveau) est ENTIEREMENT traduit en langage machine avant d'être exécuté. L'avantage, c'est, qu'une fois que le programme est traduit entièrement, on a plus besoin de revenir sur cette traduction et on peut exécuter ce programme ainsi traduit autant de fois qu'on le veut(comme un livre étranger qu'un traducteur traduit entièrement et qui n'a plus besoin d'être traduit à nouveau une fois qu'il a été publié et à chaque fois qu'un nouveau lecteur le lit).

    Dans le cas de l'interpréteur, chaque instruction d'un programme est traduite puis exécutée avant de passer à l'instruction suivante. Cela veut dire que dans ce cas là, les phases d'exécution et de traduction sont mêlées: l'exécution d'un programme comprend donc alors sa traduction en langage machine. Cela est plus lourd puisque l'on ne s'attarde plus seulement sur de l'éxécution d'instruction de langage machine mais on cherche aussi à déterminer ces instructions à partir du langage de haut niveau. On peut rapprocher cela de l'interprète "humain" dont le rôle est de traduire un discours et simultanément de le transmettre(l'équivalent de publier) à un auditoire et si par hasard la personne traduite recommence son discours du début, l'interprète n'a d'autre choix que de continuer à faire pareil(traduire et transmettre le message simultanément) et non pas de répéter bêtement le discours qu'il avait traduit la première fois.
    Dernière modification par b@z66 ; 16/03/2011 à 18h57.
    La curiosité est un très beau défaut.

  12. #11
    Abu Maria.

    Re : interprété et compilé.

    très très bonne explication

    merci

Discussions similaires

  1. programme compilé dans mikcroc for avr
    Par invite32cc11f3 dans le forum Électronique
    Réponses: 1
    Dernier message: 14/06/2010, 09h56
  2. Questions Guide Interprète
    Par invite52ed09ce dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 02/02/2010, 17h02
  3. 2 Jupiters + M31 compile du WE
    Par invite5f9a21e2 dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 5
    Dernier message: 29/09/2009, 03h38
  4. CodeBlocks ne compile pas..
    Par invite92f9622f dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 18/12/2008, 13h26
  5. pourquoi mon programme ne compile pas?
    Par inviteb5f895f5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 17/11/2008, 10h34