Il ya quelques niveaux de logiciel entre les utilisateurs d'ordinateurs et l'ordinateur lui-même , et ce n'est même pas vrai - dans une moindre mesure - pour le programmeur informatique ? . Le code informatique que la plupart des programmeurs écrivent n'a qu'un lien éloigné les instructions qui sont traitées par l'ordinateur. Ces niveaux facilitent l'ordinateur à utiliser. Machine Language
Chaque ordinateur est conçu pour tourner une langue. Ce langage est appelé langage machine pour cet ordinateur. La langue se compose de codes binaires qui indiquent à l'ordinateur exactement quoi faire . Tous les programmes qui s'exécutent sur l'ordinateur sont constitués d' une séquence d'instructions en langage machine . L'exécution de cette séquence d'instructions crée le comportement de l' ordinateur. Instructions se composent d'instructions matérielles spécifiques telles que le déplacement des données de localisation mémoire X à l'emplacement mémoire Y, déplacement des données vers ou en dehors d'un registre spécifique , en ajoutant les chiffres qui sont maintenant dans les registres d'entrée d'addition ou de retournement tous les bits du registre R1. L'exécution des instructions écrites en langage machine est la seule chose que n'importe quel ordinateur peut faire.
Monteurs
écriture du code machine de la langue est extrêmement fastidieux , d'erreurs et difficile à déboguer. Tout est chaînes de zéros et de uns. Il est impossible de dire à un coup d'œil si 1111000100110101 est des données, une instruction ou l'adresse d'un emplacement mémoire. Le premier niveau de raffinement dans la programmation informatique était l'invention du langage d'assemblage et monteurs de logiciels. Programmes de langues de l'Assemblée ont les mêmes instructions que le programme en langage machine , mais les instructions sont des choses comme "ADD" et " MOVE " qui sont beaucoup plus facile pour l'homme à traiter. En outre , les adresses sont en nombres décimaux et les registres sont désignés par des noms tels que R1 au lieu de 10.001.111 . Un programme appelé un assembleur traduit les programmes écrits en langage d'assemblage dans le programme équivalent en langage machine pour qu'il puisse être exécuté.
Compilateurs
langage d'assemblage était un énorme amélioration par rapport à l'écriture en langage machine . Le temps supplémentaire qu'il a fallu l'assembleur de traduire ce que le programmeur écrit en langage machine a été plus que compensée par les énormes économies de temps qu'il a fallu pour écrire le programme dans un langage plus respectueux de l'homme . La solution n'était pas parfait. Les gens - en particulier ceux qui ne sont pas des informaticiens - ont voulu décrire le problème à résoudre au lieu de le décomposer en petites étapes sur la façon de déplacer des informations autour d'un ordinateur . Le niveau suivant dans la hiérarchie de la langue était la langue du compilateur. Ces langues permettent à l' homme pour décrire ce qui devait être fait en termes non informatiques . Un programme appelé un compilateur traduit ces programmes de haut niveau en langage machine . Les compilateurs sont beaucoup plus compliquées que les assembleurs .
Simulateurs
Au lieu de construire de nouvelles machines à exécuter des programmes écrits dans de nouvelles langues , simulateurs de logiciels permettent une machine pour être " simulé ». Ces machines virtuelles sont testés en exécutant des programmes d'analyse comparative avant qu'ils ne soient jamais construits. Les simulateurs sont également utilisés pour tester de nouveaux compilateurs et les langues avant qu'ils ne soient jamais écrit.