Les types de langage informatique comprennent : 1. Langage de haut niveau et langage de bas niveau ; 2. Type dynamique et type statique ; 3. Type obligatoire et type faible ; 4. Compilé, interprété, semi-compilé et semi-interprété ; . Type orienté objet et type orienté processus ; 6. Distinguer le type compilé et le type interprété.
Trois grandes catégories de langages informatiques (divisées par niveau)
La corrélation avec le matériel diminue progressivement
Il existe de nombreux types de langages informatiques selon différentes fonctions et méthodes de mise en œuvre, ils peuvent être grossièrement divisés ; en 3 grandes catégories : le langage machine, le langage assembleur et les langages de haut niveau.
1. Le langage machine, un langage que les ordinateurs peuvent reconnaître directement sans traduction est appelé langage machine (également appelé langage à code binaire). Ce langage est une séquence d'instructions composée de nombres binaires 0 ou 1.
2. Langage d'assemblage. Le langage d'assemblage utilise des lettres anglaises ou des chaînes de symboles pour remplacer le langage machine. Il convertit le langage machine difficile à comprendre et à mémoriser en instructions d'assemblage selon la relation correspondante, plus facile à lire et à comprendre que la machine. langue.
3. Langage de haut niveau. Le langage de haut niveau n'est pas un langage mais un nom collectif pour une classe de langages. Il est plus proche du langage utilisé par les humains que le langage assembleur et est facile à comprendre, à mémoriser et à utiliser. Parce que les langages de haut niveau n'ont rien à voir avec l'architecture informatique et les jeux d'instructions, ils ont une bonne portabilité. Les langages de haut niveau sont largement utilisés pour le développement de programmes, notamment C, C+, Java, VB, C#, Python, Ruby, etc.
Plusieurs méthodes de classification courantes Classification
1. Les langages de haut niveau et les langages de bas niveau
Les langages courants de bas niveau sont : le code machine, le langage assembleur
Les langages courants de haut niveau tels que comme : c, c++, java, python, PHP, Ruby, go, kotlin, Swift.
Le code machine, un code secondaire qui peut être directement reconnu par l'ordinateur, quelle que soit l'avancée du langage, il doit être converti en un fichier secondaire pour que l'ordinateur puisse le reconnaître et l'exécuter.
Assemblage, utilisant des mnémoniques pour remplacer l'opcode des instructions machine, utilisant des symboles d'adresse Symbole ou étiquette pour remplacer l'adresse des instructions ou des opérandes, il existe différents jeux d'instructions dans différents appareils
Langage de haut niveau, afin d'économiser la programmation élimine les détails d'opération inutiles, enregistre la quantité de code, est hautement lisible et maintenable et est plus convivial.
La différence entre les langages de haut niveau et les langages de bas niveau : La plupart des langages de haut niveau ne peuvent pas interagir directement avec le matériel, ce qui ralentit la vitesse d'exécution du programme. En un mot, le langage qui est le plus proche. la nature humaine est plus avancée.
Six processus de compilation de langage de haut niveau
La compilation est le processus de traduction de programmes sources en langage de haut niveau en programmes cibles.
L'ensemble du processus peut généralement être divisé en six étapes : analyse lexicale, analyse syntaxique, analyse sémantique, génération de code intermédiaire, optimisation du code et génération de code cible.
Analyse lexicale, l'analyse lexicale est la première étape. La tâche de cette étape est de lire le programme source caractère par caractère de gauche à droite, de scanner et de décomposer le flux de caractères qui constitue le programme source, et ainsi d'identifier chaque caractère. . mot.
Analyse grammaticale, la tâche de l'analyse grammaticale est de décomposer les programmes de mots en phrases grammaticales basées sur l'analyse lexicale.
Analyse sémantique, l'analyse sémantique consiste à examiner le programme source pour détecter les erreurs sémantiques et à collecter des informations de type pour l'étape de génération de code.
Génération de code intermédiaire, après avoir effectué l'étape d'analyse syntaxique mentionnée ci-dessus et d'autres travaux, certains compilateurs transforment le programme source en une représentation interne. Cette représentation interne est appelée langage intermédiaire ou code intermédiaire. L'étape intermédiaire de génération de code convertit en outre le programme source en une représentation interne basée sur une analyse syntaxique et sémantique. Il est généralement facile de générer et de traduire en code cible, mais toutes les langues ne doivent pas passer par cette étape.
Optimisation du code, la tâche de cette étape est de transformer ou de transformer le code intermédiaire généré à l'étape précédente, dans le but de rendre plus efficace le code cible généré. Dans la phase d'optimisation du code, il n'est pas nécessaire de transformer ou de transformer le code intermédiaire généré lors de la phase précédente pour gagner plus de temps et d'espace lors de la génération du code cible.
Génération de code cible, la tâche de cette étape est de transformer le code intermédiaire en code instruction absolu ou code instruction délocalisable ou code instruction d'assemblage sur une machine spécifique.
2. Type dynamique et type statique
Le langage dynamique fait référence à la spécification de types de données pour les variables lors de l'exécution du programme, tandis que le langage de type statique est exactement le contraire lors de l'écriture du code du programme. Il est nécessaire de spécifier le type de la variable. Ce langage a cc++java
3 Type forcé et type faible
Nous savons qu'une variable en langage C ne peut être définie que comme un type, comme le type float, alors il ne peut s'agir que de type float. Le type int ne peut pas être attribué sans conversion. Il s'agit d'un mode de réalisation spécifique du type obligatoire.
Et python n'est pas une variable en python qui peut être copiée arbitrairement sans limites de type. Il s'agit d'un typage faible
Le typage forcé est plus rigoureux et moins sujet aux erreurs, mais les langages faiblement typés sont plus élégants et plus confortables à écrire
4 Compilés et interprétés à moitié compilés et à moitié interprétés
Pour les programmes sources, les langages compiléssont dans le programme d'exécution Le fichier source sera immédiatement converti en code machine, tandis que le langage interprété est compilé et interprété en même temps
Les langages compilés sont indissociables des interprètes, ce qui entraîne également que les langages interprétés sont plus lents à l'exécution. Les langages interprétés sont plus pratiques à transplanter tant qu'il y a un interprète, alors que les langages compilés doivent le faire. être adapté aux différents systèmes. La compilation est fastidieuse et lente lors du débogage du programme.
Des langages compilés peuvent être trouvés en cc++, etc. #Et java est un langage semi-compilé et semi-interprété. Java convertira le fichier source en bytecode dans la jVM, c'est-à-dire que le fichier .class sera converti en fichier binaire lors de l'exécution du programme. C'est un peu différent de .net en C#. Le code cible .net compilé par C# est proche de la portabilité des fichiers binaires et n'est pas aussi bon que Java qui "compile une fois et s'exécute partout". et compiler partout".
5. Orienté objet et orienté processus
Orienté processus consiste à décider comment ouvrir une route pour atteindre le point final, tandis que orienté objet consiste à utiliser des images avec des fonctions spécifiques, faire les deux est une pensée différente.
c++ est un langage Java partiellement orienté objet avec encapsulation, un langage C entièrement orienté objet et un langage orienté processus.
Il existe également des types fonctionnels ici
Le concept de types dynamiques, statiques et forts et faibles de paradigmes de langage de programmation - Le vent est clair et le cœur bat - Blog Park Paradigmes de langage de programmation de types dynamiques, statiques et forts et faibles Concepts Lors de l'apprentissage d'un langage, nous rencontrons souvent plusieurs concepts Par exemple, Java est un langage orienté objet, C est un langage orienté processus, Lisp est un langage de programmation fonctionnel, Scala est un langage statique. Qu'est-ce que cela signifie ? https://www.cnblogs .com/binbinbin/articles/14012424.html
6. Distinguer le type compilé et le type interprété
#. 🎜🎜#1. Le programme compilé est compilé dans son ensemble pour former le code cible puis exécuté en une seule fois. L'interprète est interprété et exécuté en même temps. L'explication d'une phrase puis sa soumission à l'ordinateur pour exécution ne constituent pas un programme cible. Tout comme « l’interprétation » dans la traduction en langue étrangère, elle ne produit pas de texte traduit. 2. Sauf pour la première compilation, la compilation est toujours code cible + exécution machine = résultat tandis que l'interpréteur est toujours code + interpréteur + exécution machine = résultat# 🎜🎜 #Dans le détail, le compilateur compile chaque instruction du programme source en langage machine et l'enregistre sous forme de fichier binaire. De cette manière, l'ordinateur peut exécuter directement le programme en langage machine au moment de l'exécution, ce qui est très rapide.
L'interprète n'interprète le programme qu'un par un en langage machine pour que l'ordinateur l'exécute, la vitesse d'exécution n'est donc pas aussi rapide que celle du programme compilé. En effet, l'ordinateur ne peut pas reconnaître et exécuter directement les instructions que nous écrivons, il ne peut reconnaître que le langage machine (sous forme binaire)
7 Raisons de la classification par niveau
1. .Code intermédiaire
La génération de code intermédiaire est le processus de génération de code intermédiaire. Le soi-disant « code intermédiaire » est un système de notation avec une structure simple et une signification claire. La complexité de ce système de notation se situe entre le langage du programme source et le langage machine, et il est facile de le traduire dans le code cible. De plus, des optimisations indépendantes de la machine peuvent être effectuées au niveau du code intermédiaire.
Le code Assembly est le code intermédiaire du code cible et est théoriquement indépendant de la machine.
Dans le principe de compilation, les connaissances ternaire, quaternaire, polonais inversé, etc. représentent des codes intermédiaires.
2. Code objet
Le code objet fait référence au code généré par le compilateur ou l'assembleur en informatique après traitement du code source. code ou proche du code en langage machine consiste en. Le fichier objet est un fichier informatique qui stocke le code objet. Il est souvent appelé fichier binaire. Le fichier objet contient du code machine ; des données qui peuvent être directement exécutées par le processeur central de l'ordinateur et utilisées par le code pendant l'exécution, telles que des informations de relocalisation telles que des symboles de programme pour la liaison ou le débogage, ainsi que d'autres informations de débogage. Le fichier objet est un produit intermédiaire du processus de génération de fichiers programme à partir de fichiers de code source. L'éditeur de liens génère un fichier exécutable ou un fichier bibliothèque en liant les fichiers objets entre eux. Le seul élément d'un fichier objet est le code machine. Par exemple, un fichier objet pour un système embarqué peut contenir uniquement du code machine.
Le code cible utilise généralement trois formes de langage assembleur de langage machine à assembler en modules de langage machine.
Problèmes à prendre en compte lors de la génération du code cible
(1)Comment raccourcir le code cible généré
(2)Comment rendre utilisation complète Inscrivez-vous pour réduire le nombre d'accès à la mémoire
(3) Comment utiliser pleinement les fonctionnalités du système de pointage.
Dans le langage assembleur, le registre AX, le registre d'instructions IR, etc. sont souvent directement utilisés. Différents paramètres de registre sont différents, le langage assembleur est donc davantage un langage matériel.
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!