Eléments de programmation en Python

Les programmes informatiques: de la machine à l'humain

Les langages d'ordinateurs

Un programme informatique est une liste d'instruction destinée à un ordinateur et dont le but est d'accomplir une tâche donnée.

Bah, dans ce cours, il y a aussi plein de listes d'instructions. Chaque fois qu'il y a le logo souris, on a droit à une liste d'instructions. Et ce ne sont pas des programmes, que je sache.

Et pourtant, en quelques sortes, on pourrait dire qu'il s'agit de programmes. A la différence que ceux-ci sont rédigés en français et destinés à des humains.

L'ordinateur est donc capable d'exécuter ces instructions à ma place? Bonne nouvelle! Enfin un peu de repos.

Malheureusement, il y a un petit détail qui bloque tout: l'ordinateur est incapable de comprendre une liste d'instructions rédigées en français courant.

Puisque les ordinateurs ne comprennent pas des listes d'instructions en français, voyons comment on peut se faire comprendre d'eux.

Le problème est un peu technique.

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 10011000 10101100
00100101 01011010 01110110 11011010 10110111 10101101

Dans cette illustration, chaque groupe de 8 bits correspond

  • à une instruction (copier, additionner, déplacer,... une donnée) ou 
  • à une donnée

On ne peut, bien sûr, donner que des instructions connues de l'ordinateur. Pour programmer, il faut donc savoir quelle série de bits correspond à quelle instruction. Ensuite, il faut être capable d'utiliser toutes ces instructions simples pour réaliser des tâches complexes.

Si je comprends bien, programmer, c'est apprendre à faire des choses très complexes à un idiot de première catégorie?

Ce n'est pas tout à fait faux. C'est un exercice dans lequel il faut être intelligent à la place de l'ordinateur.

Les premiers ordinateurs se programmaient dans ce langage : le langage binaire encore appelé langage machine.

L'assembleur et les langages de haut niveau

Un peu de code assembleurOn a vite trouvé qu'il serait plus facile d'écrire les programmes dans des langages plus simples à comprendre pour l'être humain. 

L'assembleur

Le premier langage inventé fut l'assembleur qui permet de représenter les instructions connues du processeur par des mots très courts (add, mov,...). L'avantage est qu'il ne faut plus connaître les instructions du processeur en termes de 0 et de 1.

Ah oui, superbe idée! Mais, en attendant, l'ordinateur attend toujours sa pâtée de 0 et de 1. Et rien d'autre. Ou alors, je n'ai rien compris à ce qui est indiqué un peu plus haut.

C'est bien correct, l'ordinateur attend bien des 0 et des 1. Et rien d'autre.
On va donc embaucher un traducteur. Et le traducteur sera simplement... un ordinateur.

assembleur vers langage machine

Dans ce processus, l'ordinateur est muni d'un programme appelé compilateur dont le but est de traduire les instructions écrites en assembleur vers le langage machine composé de 0 et de 1.

Quand la traduction est terminée, le code binaire obtenu peut éventuellement être enregistré, confié à un autre ordinateur et exécuté.

On ne peut qu'apprécier le progrès. Mais, pour ma part, je trouve que cela ressemble fort à du martien, ce code "assembleur". Je me demande si je ne vais pas étudier la philosophie plutôt que la programmation...

La philosophie est une belle discipline. Mais les progrès ne se sont pas arrêtés au langage assembleur. Il existe des langages "de haut niveau" qui sont un peu plus proches du langage humain.

Les langages de haut niveau

Dans les langages de haut niveau, on permet au programmeur de donner des instructions qui sont plus complexes que celles du langage machine. Du type "calcule la racine cubique du nombre qui se trouve dans telle case de la mémoire".

A nouveau, il faut disposer d'un programme capable de transformer ces instructions "complexes" en code binaire, compréhensible par l'ordinateur.

  • L'avantage des langages de haut niveau pour le programmeur est que le texte des programmes est plus facile à comprendre.
  • En contre-partie, il est nécessaire qu'un ordinateur intervienne pour les traduire en langage machine.

Quelques 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.

En langage Python

#! /usr/bin/python
print "Salut tout le monde"

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,...).
Un ordinateur qui sort de la chaîne de fabrication comprend
Uniquement l'anglais
Uniquement les langages informatique de haut niveau
Uniquement le code binaire
Uniquement l'assembleur
Le programme qui permet à un ordinateur de traduire un langage de haut niveau en code binaire est
Un assembleur
Un interpréteur ou un compilateur
Un traitement de textes
L'avantage des langages informatiques de haut niveau est que
On n'a plus besoin de connaître le langage machine pour composer un programme
On n'a plus besoin d'ordinateur pour exécuter les programmes
Il suffit, grâce à eux, d'écrire des programmes en code binaire
Il n'y a aucun avantage
La traduction des programmes écrits en langage de haut niveau vers le code binaire est réalisée par
Personne: il n'y a aucune traduction à réaliser
Des employés spécialisés dans les firmes de développement de logiciels
Un ordinateur muni d'un programme spécialisé
Le premier ordinateur venu
Les langages informatiques de haut niveau 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 de haut niveau comme Pascal ou Basic
l'assembleur

Quand tu as répondu à toutes les questions et bien compris les réponses, passe à la page suivante.Vers la page suivante Page suivante


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