Partie 11 de l'ordinateur
Architecture de programme stocké
Cette section s'applique à la plupart des ordinateurs à mémoire vive (RAM) courants.
Dans la plupart des cas, les instructions informatiques sont simples : additionner un nombre, déplacer des données d'un emplacement à un autre, envoyer un message à un périphérique externe, etc. Ces instructions sont lues dans la mémoire de l'ordinateur et sont généralement exécutées dans l'ordre dans lequel elles ont été données. Cependant, il existe généralement des instructions spécialisées pour indiquer à l'ordinateur d'avancer ou de reculer vers un autre emplacement du programme et de poursuivre l'exécution à partir de là. On les appelle instructions de « saut » (ou de branchement). De plus, les instructions de saut peuvent être exécutées conditionnellement, de sorte que différentes séquences d'instructions peuvent être utilisées en fonction du résultat d'un calcul précédent ou d'un événement externe. De nombreux ordinateurs prennent directement en charge les sous-routines en fournissant un type de saut qui « mémorise » l'emplacement d'où il a sauté et une autre instruction pour revenir à l'instruction suivante.
L'exécution d'un programme peut être comparée à la lecture d'un livre. Bien qu'une personne lise normalement chaque mot et chaque ligne dans l'ordre, il lui arrive de revenir à un endroit antérieur du texte ou de sauter des sections inutiles. De même, un ordinateur peut parfois revenir en arrière et répéter les instructions d'une section du programme encore et encore jusqu'à ce qu'une condition interne soit remplie. C'est ce que l'on appelle le flux de contrôle au sein du programme, et c'est ce qui permet à l'ordinateur d'effectuer des tâches de manière répétée sans intervention humaine.
À titre de comparaison, une personne utilisant une calculatrice de poche peut effectuer une opération arithmétique simple, comme additionner deux nombres, en quelques pressions de touches seulement. Mais additionner tous les nombres de 1 à 1 000 nécessiterait des milliers de pressions de touches et beaucoup de temps, avec une quasi-certitude d'erreur. En revanche, un ordinateur peut être programmé pour effectuer cette opération avec seulement quelques instructions simples.
Une fois ce programme lancé, l'ordinateur effectuera l'addition répétitive sans intervention humaine. Il ne commettra presque jamais d'erreur et un PC moderne peut effectuer cette tâche en une fraction de seconde.
Code machine
Dans la plupart des ordinateurs, les instructions individuelles sont stockées sous forme de code machine, chaque instruction se voyant attribuer un numéro unique (son code d'opération, ou opcode). L'ordre d'additionner deux nombres possède un opcode ; l'ordre de les multiplier possède un opcode différent, et ainsi de suite. Les ordinateurs les plus simples peuvent exécuter une poignée d'instructions différentes ; les ordinateurs plus complexes en ont plusieurs centaines, chacune dotée d'un code numérique unique. Puisque la mémoire de l'ordinateur est capable de stocker des nombres, elle peut également stocker les codes d'instructions. Ceci explique le fait important que des programmes entiers (qui ne sont que des listes de ces instructions) peuvent être représentés comme des listes de nombres et peuvent eux-mêmes être manipulés dans l'ordinateur de la même manière que des données numériques. Le concept fondamental de stockage des programmes dans la mémoire de l'ordinateur avec les données sur lesquelles ils opèrent est au cœur de l'architecture de von Neumann, ou architecture de programme stocké. Dans certains cas, un ordinateur peut stocker tout ou partie de son programme dans une mémoire séparée des données sur lesquelles il opère. C'est ce qu'on appelle l'architecture Harvard, d'après l'ordinateur Harvard Mark I. Les ordinateurs von Neumann modernes présentent certaines caractéristiques de l'architecture Harvard dans leur conception, notamment au niveau des caches CPU.
S'il est possible d'écrire des programmes informatiques sous forme de longues listes de nombres (langage machine) et que cette technique était utilisée sur de nombreux ordinateurs anciens[i], cette méthode est extrêmement fastidieuse et potentiellement sujette aux erreurs, surtout pour les programmes complexes. À la place, chaque instruction de base peut recevoir un nom court, révélateur de sa fonction et facile à retenir : un moyen mnémotechnique tel que ADD, SUB, MULT ou JUMP. Ces moyens mnémotechniques sont collectivement appelés langage assembleur. La conversion de programmes écrits en langage assembleur en langage machine (langage machine) est généralement effectuée par un programme informatique appelé assembleur.
Langage de programmation
Un langage de programmation est un système de notation permettant d'écrire le code source à partir duquel un programme informatique est produit. Les langages de programmation offrent différentes manières de spécifier les programmes que les ordinateurs doivent exécuter. Contrairement aux langages naturels, les langages de programmation sont conçus pour être concis et sans ambiguïté. Ce sont des langages purement écrits et souvent difficiles à lire à voix haute. Ils sont généralement traduits en code machine par un compilateur ou un assembleur avant d'être exécutés, ou traduits directement à l'exécution par un interpréteur. Parfois, les programmes sont exécutés par une méthode hybride des deux techniques.
Il existe des milliers de langages de programmation : certains sont destinés à la programmation générale, d'autres réservés à des applications hautement spécialisées.
Link 1
Link 2
Link 3
Link 4
Link 5
Link 6
Link 7
Link 8
Link 9
Link 10
Link 11
Link 12
Link 13
Link 14
Link 15
Link 16
Link 17
Link 18
Link 19
Link 20
Link 21
Ajouter un commentaire