Accéder au contenu principal

Les programmes informatiques: de la machine à l'humain

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

Posts les plus consultés de ce blog

Développements limités : définition et propriétés

Développements limités : définition et propriétés Les développements limités consistent grosso modo à trouver une approximation polynômiale à une fonction plus compliquée, au voisinage d'un point choisi. Ils ont de nombreuses applications dans d'autres sciences (physique,...), mais aussi dans les mathématiques elles-mêmes, en particulier en analyse numérique. D.L. d'ordre   en  Définition   On dit que   admet un   ssi il existe un polynôme   et une fonction   t.q.      et   On appelle alors   la partie régulière du DL, et   le reste d'ordre  , que l'on note aussi  .   Exemple  [fondamental]  , donc   admet un   de partie régulière   et de reste . Remarque  On permet le cas  , mais les seuls cas utiles sont ceux ou   (adhérence de  ), par exemple   ou  . Remarque  ...

Le langage et l'interpréteur Python Patie 1

Le langage et l'interpréteur Python Cette partie du cours aura pour but de nous familiariser avec les concepts principaux de la programmation des ordinateurs.  Nous y apprendrons les rudiments de la programmation dans le cadre du langage  Python . Ce que nous aurons acquis en programmation  Python  pourra ensuite être réinvesti dans la programmation en d'autres langages. Ce cours sera largement basé sur l'ouvrage de G. Swinnen,  Apprendre à programmer avec Python . Ce livre est disponible dans le commerce et peut aussi être  téléchargé gratuitement et légalement . Pourquoi ce langage s'appelle-t-il Python? Ce langage a été conçu par  Guido van Rossum , fan inconditionnel des  Monty Python . D'où le nom. Comment disposer du langage Python sur son ordinateur? Les compilateurs du langage Python sont disponibles pour  Linux/Unix, Mac OS/X ou Windows . Le langage Python est distribué sans frais sous licence "Open Source"...

Conseils et stratégies Pour REUSSIR ses études supérieures

Conseils pour réussir ses études supérieures jusqu'à la thèse      ou : comment avoir toujours la moyenne et même beaucoup plus Ce qui suit s'adresse principalement à des étudiant(e)s de Sciences, mais la plus grande partie du message s'applique à tous les types d'études, à toutes les disciplines et à tous les établissements. Avec une légère adaptation, les conseils fournis peuvent même servir à un public plus jeune (lycéen(ne)es, scolaires...). Il s'agit bien sûr de conseils et non pas de recettes à appliquer bêtement. 1. «Le truc essentiel» :   le plaisir Faire des études supérieures, c'est un choix et un engagement, mais c'est surtout une grande jouissance. On y gagne à y être   intellectuel(le), voire même à devenir   intelligent(e)   tout en prenant du plaisir à lire, à écrire, calculer. Découvrir les mécanismes qui régissent le monde, maitriser les ordinateurs, les modèles mathématiques, économiques ou biologiques sous-j...