Maison >Problème commun >Qu'est-ce qui peut convertir un programme source écrit dans un langage de haut niveau en un programme cible ?

Qu'est-ce qui peut convertir un programme source écrit dans un langage de haut niveau en un programme cible ?

青灯夜游
青灯夜游original
2020-11-03 17:02:4156571parcourir

Le "compilateur" convertit un programme source écrit dans un langage de haut niveau en un programme cible. Un compilateur fait référence à un programme de traduction qui traduit un programme source écrit dans un langage de programmation de haut niveau en un programme cible équivalent au format langage machine ; un compilateur prend en entrée un programme source écrit dans un langage de programmation de haut niveau et utilise le langage assembleur. ou langage machine en entrée. Représente le programme cible en sortie.

Qu'est-ce qui peut convertir un programme source écrit dans un langage de haut niveau en un programme cible ?

Le "compilateur" convertit un programme source écrit dans un langage de haut niveau en un programme cible. Le programme écrit dans un langage de haut niveau est appelé « programme source », et le programme représenté par du code binaire est appelé « programme cible ». La conversion du programme source en un programme cible reconnaissable par la machine est effectuée. complété par le "compilateur".

Compilateur, programme de compilation, également appelé compilateur, fait référence à un programme de traduction qui traduit un programme source écrit dans un langage de programmation de haut niveau en un programme cible équivalent au format langage machine. Les compilateurs sont des programmes de traduction mis en œuvre à l'aide d'une approche d'implémentation générative.

Le compilateur prend en entrée un programme source écrit dans un langage de programmation de haut niveau et en sortie un programme cible exprimé en langage assembleur ou en langage machine. Le programme cible compilé passe généralement également par la phase d'exécution afin de s'exécuter avec le support du programme en cours d'exécution, de traiter les données initiales et de calculer les résultats de calcul requis.

Caractéristiques

Le compilateur doit analyser le programme source puis le synthétiser dans le programme cible. Premièrement, vérifier l'exactitude du programme source et le décomposer en plusieurs composants de base ; deuxièmement, établir les parties de programme cible équivalentes correspondantes sur la base de ces composants de base. Afin d'accomplir ces tâches, le compilateur doit créer des tables pendant la phase d'analyse et transformer le programme source en un langage intermédiaire afin qu'il puisse être facilement référencé et traité lors de l'analyse et de la synthèse.

Les principales structures de données utilisées dans l'analyse et la synthèse de structures de données, y compris les tables de symboles, les tables de constantes et les programmes de langage intermédiaire. La table des symboles se compose d'identifiants utilisés dans le programme source ainsi que de leurs attributs, qui incluent des types (tels que des variables, des tableaux, des structures, des fonctions, des procédures, etc.), des types (tels que des entiers, des types réels, des chaînes, des types complexes, etc.). étiquettes), etc.), ainsi que d'autres informations requises par le programme cible. La table des constantes comprend les constantes utilisées dans le programme source, y compris la représentation machine des constantes et les adresses du programme cible qui leur sont attribuées. Un programme en langage intermédiaire est une forme intermédiaire de programme introduite avant la traduction du programme source en programme cible. Le choix de sa représentation dépend de la manière dont le compilateur l'utilisera et le traitera ultérieurement. Les formes linguistiques intermédiaires couramment utilisées comprennent la représentation polonaise, les triples, les quadruples et les triples indirects.

L'analyse d'une partie du programme source se fait à travers trois étapes : analyse lexicale, analyse syntaxique et analyse sémantique. L'analyse lexicale est complétée par un programme d'analyse lexicale (également appelé scanner), dont la tâche est d'identifier les mots (c'est-à-dire les identifiants, les constantes, les mots réservés et les opérateurs divers, les signes de ponctuation, etc.), de créer des tables de symboles et des tables de constantes, et convert Le programme source est converti en un formulaire interne facile à analyser et à traiter par le compilateur. L'analyseur de syntaxe est la partie centrale du compilateur. Sa tâche principale est de vérifier si le programme source est grammatical selon les règles grammaticales du langage. S'il n'est pas grammatical, un message d'erreur de syntaxe sera généré ; s'il est grammatical, la structure grammaticale du programme source sera décomposée et un programme interne sous forme de langage intermédiaire sera construit. Le but de l’analyse grammaticale est de comprendre comment les mots forment des phrases et comment les énoncés forment des programmes. Le programme d'analyse sémantique vérifie en outre l'exactitude sémantique des structures juridiques du programme. Son objectif est de garantir l'utilisation correcte des identifiants et des constantes, de collecter et de sauvegarder les informations nécessaires dans des tables de symboles ou des programmes de langage intermédiaire et d'effectuer le traitement sémantique correspondant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn