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.
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.
De 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).
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
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Salut tout le monde!\n");
return EXIT_SUCCESS;
}
Program salut ;
Begin
Writeln ('Salut tout le monde') ;
End.
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 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é.
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.
Il 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.
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.
Quand 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.
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