De l'humain à la machine

On a indiqué, à la page précédente, que la difficulté de la programmation des ordinateurs consiste à leur donner des listes d'instructions qu'ils peuvent comprendre.

Cela pose tout d'abord un problème technique.

Le langage des ordinateurs

Le langage machine

Les seules informations que puisse stocker un ordinateur sont des séries de 0 et de 1. Les données qu'il peut traiter doivent donc être codées sous cette forme.

Einstein se pose des questionsDe même, les instructions destinées aux ordinateurs sont formées d'ensembles de 0 et de 1, compréhensibles par le processeur. Un programme d'ordinateur se présente donc comme sur l'illustration ci-dessous :

00110110 11010101 10100011 00111001 1100110001 10101100
00100101 01011010 01110110 11011010 1101101110 10101101

Ce que chacun trouvera difficile à comprendre. Un ordinateur, par contre, s'y retrouve très bien.
Les premiers ordinateurs se programmaient dans ce langage : le langage binaire encore appelé langage machine.

Pour des raisons de facilité, on utilise généralement une variante dans laquelle les instructions sont codées en hexadécimal (notation en base 16).

L'assembleur et les langages évolués

Un peu de code assembleur On a ensuite trouvé plus facile de composer les programmes dans des langages plus simples à comprendre pour l'être humain. On charge ensuite un ordinateur de traduire le texte composé par le programmeur vers le langage machine.

C'est ainsi que sont nés le langage « assembleur », encore très proche du code machine, puis les langages plus évolués comme Fortran, Cobol, Basic, Pascal, C et bien d'autres.

L'avantage de ces langages pour le programmeur est que le texte des programmes est plus facile à comprendre pour un humain.

En contre-partie, il est nécessaire qu'un ordinateur intervienne pour les traduire en langage machine.
Exemples : un programme qui écrit « Salut tout le monde » à l'écran

En langage C

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Salut tout le monde!\n");
return EXIT_SUCCESS;
}

En langage Pascal

Program salut ;
Begin
Writeln ('Salut tout le monde') ;
End.

D'autres exemples de langages informatique sont illustrés dans l'encyclopédie Wikipedia. Vérifie, pour quelques langages, qu'il s'agit bien d'un moyen terme entre le langage humain et un langage de machine (vois les rubriques Smalltalk, Perl, C++, Cobol,...).

Tu dois maintenant être capable de citer les langages informatiques évoqués ci-dessus et d'expliquer l'intérêt de chacun d'eux. Vérifie que c'est le cas, sans regarder l'écran.

Les langages informatiques "évolués" sont utilisés pour :
simplifier le travail des programmeurs
simplifier le travail des ordinateurs
rendre compréhensible le travail des ordinateurs
Le langage directement compréhensible par les ordinateurs est :
le code binaire
les langages comme Pascal ou Basic
l'assembleur
Editeur de textes

Les étapes de la traduction en langage machine

L'éditeur de code

Les textes qui constituent les programmes d'ordinateur pourraient être écrits à l'aide de n'importe quel programme de traitement de textes.

Cependant, on préfèrera le plus souvent utiliser des logiciels spécialisés dans la rédaction de ces textes. En plus des fonctions traditionnelles de traitement de textes, on y disposera d'un certain nombre d'outils qui facilitent le travail (autocomplétion du code,...).

L'éditeur de code est donc un programme de traitement de textes un peu spécialisé.

Le compilateur

Les textes composés en assembleur ou dans ces langages évolués doivent être traduits en langage machine. Ce travail est réalisé par un programme spécialisé appelé compilateur.

Le compilateur examine les instructions écrites par le programmeur et les transforment en langage binaire, compréhensible par le processeur.

Des 0 et des 1Il existe un grand nombre de compilateurs. Chacun est spécialisé dans le traitement de l'un ou l'autre langage évolué.

Un texte écrit dans un langage doit être compilé à l'aide d'un compilateur approprié à ce langage précis. Un texte écrit en langage C doit être compilé par un compilateur C.

Le logiciel Delphi inclut, entre-autres, un module de composition de texte en langage Pascal (l'éditeur) et un compilateur Pascal. Ce cours aurait pu également utiliser le langage C (plus difficile à aborder) ou le langage Basic (beaucoup moins structuré), par exemple.

Remarque : les interpréteurs

Dans certains langages, le code source n'est pas préalablement traduit en langage machine par un compilateur.

Dans ce cas, la transformation en langage machine se fait au moment de l'exécution du programme : un interpréteur traduit le programme, ligne par ligne.

Lenteur de tortueQuand une ligne du programme doit être exécutée un grand nombre de fois, l'interpréteur la traduit autant de fois qu'elle est exécutée. Il en résulte une perte de temps et donc une plus grande lenteur des langages interprétés (comme certaines versions de Basic) par rapport aux langages compilés.

Tu dois maintenant être capable de citer les noms des trois logiciels évoqués ci-dessus et d'indiquer leur rôle. Vérifie que c'est le cas, sans regarder l'écran.
Le rôle de l'éditeur de code est de:
transformer le langage évolué en code binaire
écrire le texte des programmes d'ordinateurs
traduire le code binaire en langage compréhensible
Détermine l'ordre chronologique dans lequel les trois processus suivants interviennent
L'édition du texte, la compilation, l'exécution
La compilation, l'édition du texte, l'exécution
L'exécution, l'édition du texte, la compilation
La compilation, l'interprétation, l'exécution
Le rôle du compilateur est de:
transformer le langage évolué en code binaire
écrire le texte des programmes d'ordinateurs
traduire le code binaire en langage compréhensible
La différence entre un interpréteur et un compilateur est que:
Le compilateur est spécialisé dans un langage alors qu'un interpréteur peut traiter tous les langages évolués
L'interpréteur traduit une ligne de code à la fois, cependant que le compilateur traduit tout le programme en une fois
Le compilateur traduit une ligne de code à la fois, cependant que l'interpréteur traduit tout le programme en une fois
Il n'y a pas de différence entre un compilateur et un interpréteur

Quand tu distingues bien le rôle des logiciels et des langages entre l'humain et l'ordinateur, passe à la page suivante.Vers la page suivante Page suivante


Dernière modification 18/08/2016 Test dans /info ...