0

** si l'interprétation suit la phase de compilation lors de l'exection d'un pgm? ** simplement ce qui se passe lorsque nous exécutons un programme? Si ce sont des choses différentes, que va effectuer la vérification de syntaxe avant l'interprétation. read python est un langage interprété puis vérification des déclarations faites par quoi?Relation entre le compilateur et l'interprète

Répondre

2

Vous avez deux options:

  • langues Compilé
  • langues Interprété

Dans un compilé langue, vous avez besoin d'un compilateur qui obtient le code source en entrée et génère un binaire comme sortie pouvant s'exécuter sur une plate-forme cible donnée. Par exemple, C, C++ ou Java sont des langages compilés. Après que le compilateur génère le binaire, vous exécutez ce binaire sur la plate-forme cible. Les principales étapes impliquées dans le processus de compilation pour générer un binaire sont l'analyse lexique, syntaxique et sémantique, et la génération de code.

Le compilateur est un programme (binaire) qui s'exécute sur la plate-forme native et génère du code pour une plate-forme cible donnée. Vous avez deux options:

* target_platform == native_platform (native-compiler) 
* target_platform != native_platform (cross-compiler). 

Si vous avez un PC de bureau x86_64, votre compilateur fonctionne sur x86_64 et génère du code qui fonctionne sur x86_64, votre compilateur natif ont un. Dans ce cas, le compilateur génère un code machine natif.

Si vous avez un ordinateur de bureau x86_64, votre compilateur s'exécute sur x86_64 et génère du code qui s'exécute sur une plateforme différente (telle que JVM), vous avez un compilateur croisé. Vous devez comprendre que le langage Java utilise un compilateur croisé qui reçoit le langage java en entrée et génère un code octet qui s'exécute sur la machine virtuelle Java (pas sur la machine x86_64) en sortie.

D'autres compilateurs croisés tels que arm-linux-gcc, mps-linux-gcc, ppc-linux-gcc et plus, obtiennent le code source C en entrée et génèrent des binaires pour fonctionner sur la plateforme cible appropriée (ARM, MIPS, PPC).

Dans un langage interprété , vous n'avez pas besoin d'un compilateur pour générer du code, donc un binaire n'est pas généré à la fin du processus. bash et python sont des langages interprétés. L'interpréteur du langage (un binaire installé sur votre PC tel que/bin/bash ou/usr/bin/python) reçoit le code source d'entrée, l'interprète et l'exécute pour générer la sortie. Les étapes suivies pour interpréter le code source sont exactement les mêmes suivies par un compilateur, sauf que l'interpréteur ne génère pas de code, il suffit de l'exécuter après l'analyse.

J'ai écrit un article il y a quelque temps expliquant comment vous pouvez écrire un interpréteur d'un langage personnalisé en utilisant python. Cet article est écrit en espagnol, mais l'ensemble du processus est expliqué étape par étape, de sorte que vous pouvez apprendre beaucoup si vous êtes intéressé par cela. À la fin des articles, vous pouvez trouver le code source à télécharger et à tester. Le code source est disponible dans github. L'article est disponible à cette link

Espérons que ça aide! :)

+0

Qu'est-ce que vous entendez par ce binaire? Est-ce bytecode? Alors interprète qui va vérifier la syntaxe? Si nous écrivons une syntaxe erronée, il va montrer quelques erreurs non? – user104853

+0

Le lien ne fonctionne pas – user104853

+0

Vérifiez à nouveau le lien, cela fonctionne pour moi.J'ai édité ma réponse pour ajouter plus d'information. J'espère que cela vous aide! – aicastell