Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compilé vs interprété

Sujet résolu
Anonyme
    28 septembre 2011 à 20:39:40

    Bonjour, c'est quoi la différence entre un langage compilé et un langage interprété?

    Merci!
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      28 septembre 2011 à 20:49:51

      Bonjour,
      un langage compilé, c'est un langage qui est, avant de pouvoir l'executer, traduit en langage machine (binaire) par un compilateur. Le langage interprété est lui traduit en quelque sorte au fur et à mesure de l'execution par l'interpreteur.
      De fait, un langage compilé sera plus rapide qu'un interprété, c'est comme si un discours est traduit à l'avance : les gens le lisent plus vite que si le discours est traduit au fur et à mesure par l'interprete.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        28 septembre 2011 à 21:08:59

        Merci beaucoup! Maintenant je comprends mieux pourquoi l'un est plus rapide que l'autre. L'exemple avec le discours m'a bien aidé. Merci!
        • Partager sur Facebook
        • Partager sur Twitter
          29 septembre 2011 à 2:34:18

          En effet on parle souvent de compilation à la volée. Les langages de script ne sont pas compilés, comme le html par exemple. Quand ton navigateur a sa barre de chargement qui charge, ca veut dire que non seulement il télécharge le code, mais en plus il compile.

          Sur des connexions internet lentes des parties de code html compilés s'affichent déja alors que d'autres sont encore en cours de compilation et vont s'afficher après :)

          Pour compiler du code html il faut déja le parser, c'est de l'analyse syntaxique (parser en anglais), on peut même en concevoir un en langage php (exemple le BBcode des forums ;) ), et ensuite sa compile à proprement parlé puis sa affiche les graphismes à l'écran (images, textes, etc...).
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            29 septembre 2011 à 8:06:06

            Citation

            En effet on parle souvent de compilation à la volée. Les langages de script ne sont pas compilés, comme le html par exemple. Quand ton navigateur a sa barre de chargement qui charge, ca veut dire que non seulement il télécharge le code, mais en plus il compile.


            Le HTML n'est-il justement pas interprété ?
            • Partager sur Facebook
            • Partager sur Twitter
              29 septembre 2011 à 10:08:41

              Je ne suis pas d'accord avec la définition de langage interprété.
              Un langage interprété est un langage qui sera traduit dans un langage plus ou moins similaire au langage machine. Ce dernier sera exécuté par un interpréteur comme le ferait un processeur.

              Pour faire simple : ton programmes est traduit en instructions basiques exécutées par un programme tiers (interpréteur, machine virtuelle...).

              Ensuite, il y a deux grandes familles de langages interprété : ceux orientés exécution dont les instructions sont compilées et exécutées une à une (Bash, par exemple).
              Ceux qui sont orientés compilation. Ils ont une phase de compilation complète avant d'être exécutés (comme Perl ou Java).
              • Partager sur Facebook
              • Partager sur Twitter
                29 septembre 2011 à 13:10:50

                Citation : neowillow

                Citation

                En effet on parle souvent de compilation à la volée. Les langages de script ne sont pas compilés, comme le html par exemple. Quand ton navigateur a sa barre de chargement qui charge, ca veut dire que non seulement il télécharge le code, mais en plus il compile.


                Le HTML n'est-il justement pas interprété ?


                Oui c'est interpreté, c'est ce que j'ai dis.
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  29 septembre 2011 à 16:48:12

                  Citation

                  Oui c'est interpreté, c'est ce que j'ai dis.


                  Ah… Je pensais que tu sous-entendais le contraire. Pardon.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 septembre 2011 à 17:19:11

                    le HTML est, pour moi, plus un langage de description de données: il est analysé pour en extraire différentes info, mais il n'est pas compilé!
                    • Partager sur Facebook
                    • Partager sur Twitter
                    ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                    Anonyme
                      29 septembre 2011 à 22:16:35

                      De toute manière, avant que l'ordi comprenne quoi que ce soit, il faut passer par du binaire, on peut donc dire que le html par exemple est traduit en binaire à un moment ou à un autre, donc il est en quelque sorte compilé.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 septembre 2011 à 22:21:14

                        Non il est pas compilé (c'est à dire traduit dans un autre langage! -> Compilation_(informatique) ), tout au plus interprété par le navigateur (qui lui est un programme compilé!) pour en extraire les données(position des images, textes, url) des méta-données (balises indiquant comment ssont disposées les données)
                        • Partager sur Facebook
                        • Partager sur Twitter
                        ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                          20 juin 2017 à 14:35:26

                          Hello, je viens déterrer le sujet ! 8°)

                          Et pour le python, comment cela pourrait se passer ? Par qu'il est quand même très rapide, enfin bien moins lent que la compilation de C sous Visual Studio...

                          Comment optimiser les classes d'un langage compilé afin que celles-ci, lors de leurs utilisation, permette d'utiliser les objets voulu dans le programme (python est un programme bien utile..sauf en cas d'over stack..) lors de l'execution de ce dernier sans que la quantité d'information soit trop gourmande en memoire vive ?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 juin 2017 à 17:28:33

                            yohanesitruk a écrit:

                            Et pour le python, comment cela pourrait se passer ? Par qu'il est quand même très rapide, enfin bien moins lent que la compilation de C sous Visual Studio...

                            Tu compares quoi avec quoi là ? Le temps d'exécution du programme Python avec le temps de compilation d'un programme C ? Cela n'a juste pas de rapport. A la limite tu peux comparer le temps d'exécution du programme Python avec le temps d'exécution d'un programme C compilé. Et si ton algo C est plus lent, c'est juste qu'il est mal écrit, mais vu que c'est difficile d'écrire correctement un code C, c'est pas complètement étonnant.

                            yohanesitruk a écrit:

                            Comment optimiser les classes d'un langage compilé afin que celles-ci, lors de leurs utilisation, permette d'utiliser les objets voulu dans le programme (python est un programme bien utile..sauf en cas d'over stack..) lors de l'execution de ce dernier sans que la quantité d'information soit trop gourmande en memoire vive ?

                            Waow, j'ai rien compris à cette phrase. Dans les langages compilés, la notion de classe n'induit généralement pas vraiment de coût énorme, à moins qu'on commence à faire des grosses conneries genre RTTI à tout va.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                              20 juin 2017 à 17:37:39

                              [6 ans plus tard] Ah non, le HTML, il est (en général) traduit pour former une structure arborescente, l'arbre DOM, qui peut ensuite être manipulé par le code javascript de la page.

                              https://fr.wikipedia.org/wiki/Document_Object_Model

                              Une fois que cet arbre est construit, il peut être affiché.

                              -
                              Edité par michelbillaud 20 juin 2017 à 17:38:54

                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 janvier 2020 à 18:07:25

                                Le langage HTML reste un language interprété il a évidemment besoin de passer par un autre canal afin d'être traduit et compris par l'ordinateur, mais qu'en est-il des dispositifs de lecture de ce langage?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  22 janvier 2020 à 18:22:07

                                  Le langage HTML n'est pas un langage de programmation mais de description. Un texte écrit en HTML est destiné à être analysé, par un navigateur généralement, pour produire un arbre DOM qui sera ensuite mis en page et affiché sur un dispositif graphique.

                                  ---

                                  Etre compilé ou interprété, ce n'est pas une propriété intrinsèque du langage, mais d'une implémentation particulière.

                                  Exemple, souvent un source Java est compilé sous forme de "bytecode", code intermédiaire qui est ensuite

                                  •  soit interprété
                                  •  soit traduit en instructions natives (just in time et cie).

                                  le byte code est un langage de type "langage machine" pour une machine qui n'existe pas réellement. C'est un langage qui est compilé, ou pas.

                                  Le code java peut aussi être compilé directement en code natif.

                                  --'

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    29 janvier 2020 à 19:17:00

                                    C'est amusant de voir comment évolue cette question, pourtant simple à l'origine, ceci entre technique et Vocabulaire, la vraie réponse est relative .. (donc ca dépend du point de vue).

                                    Maintenant on s'entend pour dire: 

                                    Interprété (par un programme compilé)

                                    Compilé (interprété par un processeur) 

                                    Les constructions intermédiaires utiliseront la terminologie "Pseudo-compilé", c'est à dire partiellement compilé:

                                     ex: du cpp vers du c, du py vers du pyc, du java vers du class.

                                    On utilisera ensuite des compilateurs pour transformer le code ou pseudo code en code machine (un fichier binaire) interpretable par le processeur (enfin par le système entier processeur, GPU, Interfaces Bios etc) 

                                    On utilisera un cross-compilateur pour produire des fichiers déstiné à un autre système (Android, Arduino, PIcs, FPGA etc.) 

                                    On utilisera un interpréteur (ou machine virtuelle) pour exécuter du code, ou du pseudo-code sur le système.

                                    Le "Just In Time" compiler utilisé en Java permet de transformer du Code en pseudo Code à la volée (phase d'analyse syntaxique, et inclusion sémantique dans l'espace mémoire courant) C'est quand même l'interpréteur qui fais le reste du travail)

                                    Le HTML est une DataStructure des données au même titre qu'un document Word lu par Microsoft Word .. mais la richesse de cette dataStructure tend à introduire les prémisses d'un language interprété par le Browser. Là on est dans l'entre de porte .. (essayons de ne pas en faire la quatrième dimension .. wuoiiiinnnn innnn ! )

                                    Jérôme 

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      29 janvier 2020 à 21:57:17

                                      Il me semble que le just in time, c'est plutôt la traduction du code intermédiaire portable issu de la compilation du source (bytecode) en code natif directement exécutable, au chargement, ou à la volée.

                                      https://fr.m.wikipedia.org/wiki/Compilation_%C3%A0_la_vol%C3%A9e

                                      -
                                      Edité par michelbillaud 29 janvier 2020 à 22:00:43

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 janvier 2020 à 8:26:30

                                        Yep, sinon, on ne gagnerait absolument rien dans le contexte de Java, puisque le compilo produit déjà un bytecode. Par contre selon l'OS, il y a des petites subtilités pour filer le code exécutable généré au processeur.

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                        Compilé vs interprété

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown