Quelle est la différence entre compilé et interprété langue?
Après la lecture de certains documents sur ce sujet, je ne suis toujours pas sûr de ce que la différence entre un langage compilé et un langage interprété est. On me dit que c'est une des différences entre Java et JavaScript. Quelqu'un voudrait-il m'aider à comprendre?
Vous devez vous connecter pour publier un commentaire.
La différence est pas dans la langue; il est dans l' mise en œuvre.
Avoir eu sur mon système, voici une réponse:
Dans un compilé de mise en œuvre, le programme d'origine est traduit en machine natif d'instructions qui sont exécutées directement par le matériel.
Dans une interprétation d'une mise en œuvre, le programme d'origine est traduit en quelque chose d'autre. Un autre programme, appelé "l'interprète", puis examine "autre chose" et effectue les actions sont appelés pour. En fonction de la langue et de sa mise en œuvre, il existe une variété de formes de "quelque chose d'autre". De plus en plus populaire au moins populaire, "quelque chose d'autre" peut-être
Binaire des instructions pour une machine virtuelle, souvent appelé bytecode, comme cela se fait en Lua, Python, Ruby, Smalltalk, et de nombreux autres systèmes (l'approche a été popularisée dans les années 1970 par l'UCSD P-système et Pascal UCSD)
Un arbre-comme la représentation de l'original du programme, tel qu'un résumé-arbre de syntaxe, comme on le fait pour de nombreux prototypes ou d'enseignement interprètes
Une représentation sous de la source de programme, semblable à Tcl
Les caractères de la source de programme, comme cela a été fait dans de la MENTHE et de TRAC
Une chose qui complique le problème, c'est que il est possible de traduire (compilation) bytecode en natif instructions machine. Ainsi, la réussite d'une intepreted la mise en œuvre pourrait, éventuellement, acquérir un compilateur. Si le compilateur fonctionne de manière dynamique, en coulisses, il est souvent appelé un " juste-à-temps compilateur ou d'un compilateur JIT. Les ece ont été développés pour Java, JavaScript, Lua, et j'ose dire que de nombreuses autres langues. À ce stade, vous pouvez avoir un hybride de mise en œuvre dans lequel certains le code est interprété et un peu de code est compilé.
Java et JavaScript sont un assez mauvais exemple pour illustrer cette différence
, parce que les deux sont des langages interprétés. Java(interprété)et C (ou C++)(compilé)aurait été un meilleur exemple.Fondamentalement, le code compilé peut être exécuté directement par le PROCESSEUR de l'ordinateur. Qui est, le code exécutable est spécifié dans le PROCESSEUR de langage "natif" (langage d'assemblage).
Le code de langages interprétés, cependant, doivent être traduits au moment de l'exécution de n'importe quel format de PROCESSEUR des instructions machine. Cette traduction est faite par un interprète.
Une autre façon de mettre est que interprétée
languesle code est traduit en machine des instructions étape-par-étape tout le programme est en cours d'exécution, tandis que compilélangues ontle code a été traduit avant l'exécution du programme.Ici est la Différence Fondamentale entre le Compilateur vs Interprète en Langue des.
Compilateur De Langage
Interprète En Langue:
Un compilateur, en général, lit langage de plus haut niveau du code informatique et la convertit en p-code ou code machine natif. Les services d'un interprète s'exécute directement à partir du p-code ou un code interprété comme Base ou en Lisp. Généralement, le code compilé fonctionne beaucoup plus vite, est plus compact, et a déjà trouvé toutes les erreurs de syntaxe et de nombreux illégale d'erreurs de référence. Le code interprété ne trouve que de telles erreurs après l'application tente d'interpréter le code affecté. Le code interprété est souvent une bonne pour les applications simples qui ne sera utilisé qu'une fois, ou tout au plus deux ou trois fois, ou peut-être même pour le prototypage. Le code compilé est mieux pour les applications sérieuses. Un compilateur prend d'abord dans l'ensemble du programme, vérifie les erreurs, compile, puis l'exécute. Alors que, d'un interprète n'cette ligne par ligne, donc il faut une ligne, vérifie les erreurs, puis l'exécute.
Si vous avez besoin de plus d'informations, il suffit de Google pour "la différence entre le compilateur et interpréteur".
C'est un très trouble distinction, et, en fait, généralement pas une propriété de la langue elle-même, mais plutôt du programme que vous utilisez pour exécuter du code dans cette langue.
Cependant, la plupart des langues sont utilisées principalement dans l'un ou l'autre, et oui, Java est essentiellement toujours compilé, alors que javascript est essentiellement toujours interprété.
Pour compiler le code source est d'exécuter un programme qui génère un exécutable, fichier exécutable qui, lorsqu'il est exécuté, a le comportement défini par la source. Par exemple, javac compile de l'homme-readbale .fichiers java en lisibles à la machine .les fichiers de classe.
Pour interpréter le code source est d'exécuter un programme sur ce que produit le comportement défini tout de suite, sans générer un fichier intermédiaire. Par exemple, lorsque votre navigateur web charge stackoverflow.com il interprète un tas de javascript (que vous pouvez regarder en affichant le code source de la page) et produit beaucoup de jolis effets de ces pages ont - par exemple, upvoting, ou le petit déclarant barres sur le dessus.
Langage interprété est exécuté au moment de l'exécution selon les instructions comme dans les scripts shell et langage compilé, est celui qui est compilé (changée en langage d'Assemblage, quel est le PROCESSEUR peut comprendre ) et puis exécuté comme en c++.