Maison >Problème commun >Que faut-il pour convertir un programme écrit dans un langage de programmation de haut niveau en un programme exécutable équivalent ?

Que faut-il pour convertir un programme écrit dans un langage de programmation de haut niveau en un programme exécutable équivalent ?

王林
王林original
2021-01-12 14:41:2631390parcourir

La conversion d'un programme écrit dans un langage de programmation de haut niveau en un programme exécutable équivalent nécessite une compilation et une liaison. Les langages de programmation de haut niveau peuvent se débarrasser des différentes contraintes des systèmes d'instructions informatiques et des machines aléatoires en langage machine, et convertir les programmes sources en codes cibles que le processeur peut reconnaître.

Que faut-il pour convertir un programme écrit dans un langage de programmation de haut niveau en un programme exécutable équivalent ?

L'environnement d'exploitation de cet article : système Windows 10, ordinateur thinkpad t480.

La conversion d'un programme écrit dans un langage de programmation de haut niveau en un programme exécutable équivalent nécessite une compilation et une liaison.

Le programme source écrit par l'utilisateur est compilé dans un programme cible, mais ce programme ne peut pas encore s'exécuter. Parce que les sous-programmes de fonction standard et les sous-programmes d'entrée/sortie utilisés dans le programme n'ont pas encore été liés. Par conséquent, il doit être connecté et assemblé pour devenir un programme exécutable indépendant.

Introduction aux langages de programmation de haut niveau

Langages de programmation de haut niveau, également appelés « langages algorithmiques » ou « langages de haut niveau » en abrégé. Un langage de programmation pour écrire des programmes dans un langage formel facile à écrire et à comprendre. Il peut se débarrasser des différentes contraintes des systèmes d'instructions informatiques et des machines aléatoires en langage machine, et concevoir des compilateurs correspondants (ou "compilateurs") pour convertir les programmes sources écrits dans des langages de haut niveau adaptés à diverses machines en programmes pouvant être reconnus. par le processeur central.

Selon les spécifications de base pour décrire le processus de calcul, il est divisé en langages procéduraux (tels que le langage FORTRAN, le langage PASCAL, le langage Ada, etc.), langages fonctionnels (tels que le langage LISP ), les langages logiques (tels que le langage PROLOG) et les langages orientés objet (composés en ajoutant quelques mécanismes de description pour prendre en charge les langages orientés objet sur les langages précédents).

L'interprète est un type de programme de traduction de langage de haut niveau. Il prend en entrée un programme source écrit dans la langue source et l'interprète en un code binaire reconnu par la machine. soumis à l'ordinateur pour exécution. Il ne forme pas un programme cible.

L'édition consiste à écrire le programme source. La compilation consiste à prendre un programme source en langage de haut niveau en entrée, à effectuer une traduction et une conversion pour produire un programme cible en langage machine, puis à laisser l'ordinateur exécuter le programme cible.

Convertir le programme source en programme exécutable

Pour exécuter un programme, il doit passer par quatre étapes : prétraitement, compilation, assemblage et liaison.

1. Prétraitement : Agréger les programmes sources (fichiers .c) stockés dans différents fichiers, et remplacer les macros dans le langage, comme la directive de prétraitement #include, pour laisser le compilateur ouvrir les fichiers inclus, conserver son programme avec d'autres programmes. Générez des fichiers .i.

2. Compilation : prétraitement du programme source (fichier .i) en assembleur (fichier .s)

3. Assemblage (assember) : Convertir l'assembleur en déplaçable (relocalisable : c'est-à-dire la machine le code du segment de code et l'adresse des données dans le fichier n'ont pas encore été finalisés). Cette étape génère le fichier cible (fichier .obj ou .o).

4. Linker/loader : la liaison consiste à connecter le fichier cible avec d'autres modules de programme (le cas échéant) qui sont compilés et générés séparément et les fonctions de bibliothèque standard fournies par le système pour générer le processus de création d'un exécutable. Le fichier exécutable localise chaque code et données à l'emplacement approprié dans la mémoire lors du chargement. Cette étape génère le fichier exécutable final.

Que faut-il pour convertir un programme écrit dans un langage de programmation de haut niveau en un programme exécutable équivalent ?

Connaissances étendues :

  • Programme source :

    Le programme source signifie non compilé Un fichier texte écrit conformément à certaines spécifications du langage de programmation est une série d'instructions de langage informatique lisibles par l'homme.

    Le programme source ne peut pas être exécuté directement sur l'ordinateur. Un "compilateur" doit être utilisé pour compiler le programme source sous forme de code binaire.

  • Programme cible :

    Le code binaire obtenu en compilant le programme source via le "compilateur" est appelé programme cible

    Le programme cible fait référence au programme source après avoir compilé une collection de codes machine pouvant être directement exécutés par l'ordinateur, avec une extension .obj sur le fichier informatique

  • programme exécutable

    exécutable programme : tous compilés Les modules cibles obtenus sont connectés et assemblés, puis connectés à la bibliothèque de fonctions pour former un tout, générant un programme cible qui peut être exécuté par l'ordinateur et devenir un programme exécutable.

    De manière simple, un programme exécutable est un programme complet qui peut être exécuté indépendamment sous le système d'exploitation en connectant le programme cible et la fonction bibliothèque

    L'extension du programme exécutable est ". exe » (dans l’environnement dos/windows).

(Partage de vidéos d'apprentissage : Vidéo de programmation)

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