Misfu, le site des cours Informatique/Bureautique/Mathematiques

 

Les programmes de l'ordinateur

Qu'est-ce qu'un programme ?

Un programme est une suite d'actions à exécuter dans un ordre bien défini que l'on envisage de réaliser. Il n'est pas nécessaire de parler d'informatique quand on envisage l'idée de "programme".

Mon programme pour la matinée.

  • 1. Me lever
  • 2. Déjeuner
  • 3. Sortir le chien
  • 4. Acheter le journal
  • ...

Que peut faire un ordinateur ?

Un ordinateur est une machine dotée d'un microprocesseur capable d'exécuter très rapidement des instructions très simples.


microprocesseur

Exemple (très simplifié) de programme d'ordinateur:

1. Attendre la frappe d'un nombre au clavier et le déposer dans la case mémoire n°10
2. Attendre la frappe d'un nombre au clavier et le déposer dans la case mémoire n°11
3. Additionner les contenus des cases n°10 et n°11 et déposer le résultat dans la case n°12
4. Ecrire le contenu de la case n°12 à l'écran....

En fait, un programme d'ordinateur ne peut pas être écrit en français. Il doit être écrit dans le langage très simple que "comprend" l'ordinateur. Dans ce langage, chaque instruction est codée sous la forme d'un nombre.


Pour que le programme d'un ordinateur puisse être exécuté par le processeur, il doit être chargé dans la mémoire centrale.

Fonctionnement d'un ordinateur

L'animation ci-dessous présente un schéma de fonctionnement de l'ordinateur.

  • Les programmes sont stockés sur le disque dur.
  • Pour être exécuté, un programme doit être envoyé dans la mémoire vive (RAM).
  • Le processeur (CPU) lit et exécute les instructions trouvées dans la mémoire vive.
  • Le processeur peut également déposer des informations dans la mémoire vive: les résultats de ses calculs, par exemple.
  • Lorsque le traitement est terminé, on peut envoyer les résultats obtenus sur le disque dur.

  • hdcpu0
  • hdcpu1
  • hdcpu2
  • hdcpu3
  • hdcpu4
  • hdcpu5
  • jquery photo gallery
  • hdcpu7
hdcpu01 hdcpu12 hdcpu23 hdcpu34 hdcpu45 hdcpu56 hdcpu67 hdcpu78
Lorsque l'on exécute un programme d'ordinateur
  • Tout se passe dans le disque dur
  • Tout se passe dans la mémoire vive
  • Tout se passe au niveau du processeur
  • Tout se passe en coopération entre la mémoire vive et le processeur
Le processeur exécute les instructions qu'il trouve
  • Sur le disque dur
  • Dans la mémoire RAM
  • Dans sa mémoire interne
A la fin de l'exécution d'un programme
  • Le programme est à nouveau écrit sur le disque dur.
  • Les résultats des opérations sont écrits sur le disque dur
  • Un nouveau programme est écrit sur le disque dur

A quoi ressemble un programme

  • A écouter :

Généralement, les programmes de l'ordinateur sont souvent élaborés par des informaticiens. Leur travail consiste donc à exprimer dans le langage d'ordinateur la suite des ordres nécessaires pour réaliser une certaine action.


programme logo

Dans l'illustration ci-dessus, un exemple de programme rédigé en langage LOGO. C'est un langage très simple, souvent utilisé pour apprendre à programmer, en cours de technologie, par exemple.


  • Les instructions figurent dans la partie gauche de la fenêtre. Celles-ci permettent de diriger une "tortue" qui dessine à l'écran.
  • Dans la partie droite, on voit le trait obtenu après exécution des instructions.

Le langage LOGO ressemble encore très fort à une langue humaine. C'est un langage informatique très simple. D'autres langages informatiques sont moins simples (Python, C++, Perl,...)


Les programmes de l'ordinateur peuvent ensuite être enregistrés sur des CD-ROMs ou DVD. Ils sont alors distribués aux personnes qui les utiliseront.

Dans l'illustration ci-dessus, les informations qui figurent dans le cadre gauche de l'interface LOGO
  • Forment un programme
  • Ne forment pas un programme
  • Il est impossible de répondre à cette question

Le rôle de la mémoire de l'ordinateur


Fonctionnement de la mémoire

  • A écouter :

A chaque fois que tu exécutes un nouveau programme, ce programme, les données qu'il utilise et les résultats qu'il produit doivent se disposer dans la mémoire centrale.


Dans l'illustration ci-dessous, on a représenté en bleu la zone de la mémoire centrale contenant les programmes, et en vert la zone qui contient les données et les résultats des programmes.


Quand tu commences à travailler avec le PC, le système d'exploitation (Windows, Linux,...) -nommé OS (Operating System) sur les schémas ci-dessous- est chargé automatiquement dans la mémoire.
Une autre partie de la mémoire sert à déposer certaines informations (Ex: mot de passe, nom d'utilisateur, ...).


       

Pour le cours d'informatique, tu dois utiliser un navigateur web. Le système d'exploitation reste en mémoire. Le navigateur s'ajoute. Un peu de mémoire supplémentaire est utilisée pour déposer les pages sur lesquelles tu travailles.


       

Le cours d'informatique se termine, tu passe à la dactylo. Tu n'as plus besoin d'un navigateur web. Tu le fermes. La mémoire qu'il occupait redevient libre.


       

Pour la dactylo, tu utilises un logiciel pour apprendre la frappe au clavier. Tu charges le programme en mémoire.


       

Pour un exercice particulier, tu dois utiliser un logiciel de traitement de textes, en plus.


       

Droits d'auteur : Yves Mairesse. Ce cours est sous contrat Creative Commons

Combien de logiciels peut-on charger, au maximum, dans la mémoire de l'ordinateur ?
  • Un seul, le système d'exploitation
  • Trois logiciels
  • Quatre logiciels
  • Ça dépend
Quels éléments prennent le plus de place, dans la mémoire de l'ordinateur ?
  • Les programmes
  • Les données
  • Il est impossible de répondre à cette question
A la page précédente, tu as lu que lorsqu'un programme d'ordinateur est exécuté par le processeur, il doit se trouver:
  • Sur le disque dur
  • Sur l'écran
  • Dans la mémoire centrale
Dans quel sens circulent les informations entre le processeur et la mémoire centrale?
  • Du processeur vers la mémoire centrale uniquement
  • De la mémoire centrale vers le processeur uniquement
  • De la mémoire centrale vers le processeur et du processeur vers la mémoire centrale
  • Aucune information n'est échangée entre la mémoire centrale et le processeur

Des données et des résultats peuvent être copiés dans la mémoire centrale pour y être retenus et utilisés plus tard


La mémoire centrale d'un ordinateur contient des informations de deux sortes:

  • 1. les instructions des programmes exécutés
  • 2. les données et résultats calculés par ces programmes.

Mémoire vive et mémoire morte

La mémoire centrale de l'ordinateur fonctionne avec de l'électricité! Quand le courant est éteint, la mémoire se vide entièrement des programmes et des données qu'elle pouvait contenir.

  • Et comment l'ordinateur peut-il même savoir comment démarrer, s'il est complètement amnésique à chaque réveil ?


  • La solution est simple. Dans l'ordinateur, on a implanté un composant contenant de la mémoire qui ne peut pas s'effacer. Donc, à son réveil, l'ordinateur dispose de cette mémoire-là.

Le BIOS

En fait, il existe, dans l'ordinateur, une puce qui est capable de retenir des informations, même si le courant est coupé: c'est le BIOS (acronyme signifiant "Basic Input Output System").


Sur l'illustration ci-dessous, on voit un BIOS (avec une étiquette dorée) fabriqué par la société AMI parmi d'autres composants électroniques de l'ordinateur.

Le BIOS contient quelques petits programmes très simples qui permettent à l'ordinateur de "retenir" comment faire pour lire l'état des boutons de la souris, comment faire pour écrire à l'écran, comment faire pour accepter des frappes au clavier, pour communiquer avec les disques,...


La mémoire vive est aussi appelée "mémoire RAM", de l'anglais "random access memory" (mémoire à accès aléatoire, dans laquelle on peut accéder à n'importe quel élément choisi au hasard).

mémoire ROM
ROM

Le BIOS contient des informations qui sont définies une fois pour toutes; elles ne peuvent jamais changer. On parle de mémoire morte.


La mémoire morte est aussi appelée "mémoire ROM", de l'anglais "read only memory" (mémoire en lecture seule, dans laquelle il est impossible d'écrire).


La mémoire centrale contient des informations qui peuvent changer continuellement. On parle de mémoire vive.

Quand on coupe le courant de l'ordinateur, la mémoire centrale
  • conserve uniquement le contenu du BIOS
  • conserve toutes les informations qui y ont été stockées
  • ne conserve strictement aucune information
Le BIOS est
  • Une puce située dans l'ordinateur
  • Une partie de la mémoire centrale
  • Une partie du microprocesseur
La mémoire centrale de l'ordinateur contient des informations
  • Qui sont toujours les mêmes, d'une fois à l'autre
  • Qui peuvent varier, d'une fois à l'autre
Le BIOS est capable de retenir des informations qui permettent à l'ordinateur de
  • Démarrer quand il est éteint
  • Écrire à l'écran, uniquement
  • S'éteindre quand il est allumé
L'acronyme RAM signifie
  • Random Access Memory
  • Read Access Memory
  • Random Able Memory
L'acronyme ROM signifie
  • Random Only Memory
  • Read Only Memory
  • Read Able Memory
La mémoire RAM est
  • De la mémoire vive
  • De la mémoire morte
  • Aucune autre réponse n'est satisfaisante
Le BIOS
  • contient de la mémoire vive
  • contient de la mémoire morte
  • ne contient aucune mémoire

Le système d'exploitation

Lorsque l'ordinateur démarre, le BIOS contient tous les programmes nécessaires pour lui faire réaliser les principales actions de base : lire les disques, le clavier, la souris, ... écrire à l'écran, sur les disques, ...

Ubuntu

Une deuxième série de programmes intervient alors: c'est le système d'exploitation. Celui-ci permet à l'ordinateur d'organiser son travail. La façon dont on organise les informations enregistrées sur les disques, la façon dont on organise les informations dans la mémoire, ...


Vérifie quel système d'exploitation est utilisé sur l'ordinateur avec lequel tu travailles.


Il existe d'autres systèmes d'exploitation :

OS/2
  • Android, un système d'exploitation utilisé sur certaines tablettes et smartphones
  • UnixUNIX (souvent utilisé sur de plus gros ordinateurs),
  • MacOSMac OS (pour les ordinateurs du type MacIntosh),
  • LinuxLINUX (système d'exploitation semblable à UNIX mais libre et souvent  gratuit)
    il en existe un grand nombre de variantes.
  • WindowsWindows XP, Vista, Seven, Windows 8, Windows 10, ...
  • .........

Il faut remarquer que, bien souvent, les systèmes d'exploitation ne sont pas compatibles entre eux.


Un logiciel écrit pour fonctionner sous Windows ne peut pas fonctionner directement sous Linux. Un logiciel écrit pour fonctionner sur un Mac ne pourra pas fonctionner sous Windows.


Même pas vrai! Mon petit cousin, il utilise Linux et le traitement de textes LibreOffice comme moi avec mon PC sous Windows.
Et même, mon grand frère, il a un Mac et utilise Word, comme sur un PC.


Vous avez partiellement raison. Le logiciel est bien le même, mais le code doit être totalement réadapté, d'un système d'exploitation à l'autre. Si vous téléchargez la version pour Linux, elle ne fonctionnera pas sur un Mac. Si vous achetez une version Windows de Microsoft Office, elle ne fonctionnera pas sur un Mac.

Le rôle principal du système d'exploitation est :
  • d'organiser le traitement des informations dans l'ordinateur
  • détecter quelles touches sont frappées au clavier
  • de faire fonctionner l'écran

Les bugs : Histoire de l'informatique

  • A écouter :

Un "bug" est une erreur dans le fonctionnement d'un logiciel. Quelle est l'origine de ce terme ?

En 1945, l'ENIAC était le précurseur des ordinateurs modernes. Il occupait une salle entière pour une puissance bien inférieure à un PC actuel.


En août 1945, alors qu'ils travaillaient sur cet ordinateur, les opérateurs constatèrent des pannes dans l'un des circuits électriques de la machine. Lorsque l'endroit de la panne a été localisé, on en a détecté la cause : un insecte entré par inadvertance dans la machine y causait des court-circuits.


A l'aide d'une pince, l'un des opérateurs put retirer l'insecte qui fut collé sur une feuille de papier et exposé.

eniac
bug

La cause de la panne était un vulgaire insecte, une vermine (en anglais, "a bug"). Depuis, l'expression est restée: une cause de panne dans un ordinateur ou dans un programme est un bug.


On emploie encore parfois le mot bug francisé : on parle alors d'un bogue.

Le code source et le logiciel compilé

Un ordinateur ne peut pas comprendre autre chose que le code binaire formé de "0" et de "1".
Un humain peut difficilement lire ou rédiger un programme d'ordinateur écrit sous forme de "0" et de "1". Comment un humain peut-il, malgré tout, se faire comprendre des ordinateurs?


La solution au problème est expliquée dans l'animation ci-dessous. Étudie-la attentivement, étape par étape.

  • compil0
  • compil1
  • compil10
  • compil11
  • compil12
  • compil13
  • compil2
  • compil3
  • compil4
  • compil5
  • compil6
  • compil7
  • css image gallery
  • compil9
compil01 compil12 compil103 compil114 compil125 compil136 compil27 compil38 compil49 compil510 compil611 compil712 compil813 compil914

Les trois idées à retenir sont:


  • la notion de "Code Source"
  • la notion de "Code Binaire"
  • la notion de compilation

Détaillons cela ci-dessous.

Les ordinateurs traduisent le Code Source

Le binaire: l'objectif

Un programme d'ordinateur se présente comme sur l'illustration ci-dessous :


00110110 11010101 10100011 00111001 10011000 10101100
00100101 01011010 01110110 11011010 10110111 10101101

Il est beaucoup trop difficile de programmer en "0" et en "1". Aujourd'hui, tous les programmeurs travaillent dans des langages beaucoup plus proches d'une langue humaine mais déjà assez proche du langage d'une machine.


Ce sont les langages d'ordinateurs.
Il existe une multitude de langages d'ordinateurs, à mi-chemin entre le langage humain et le langage binaire: Fortran, C, Basic, Pascal, LOGO, PHP,...

Le texte écrit dans un de ces langages est appelé "Code Source". Il ne peut pas encore être compris directement par un ordinateur.

Mais, on a appris aux ordinateurs à traduire ces langages en code binaire.


Le code source et sa traduction.


Le code source est un texte rédigé dans un langage assez compréhensible pour les humains et qui doit être traduit en code  binaire pour être compris par les ordinateurs.
La traduction du code source en code binaire est appelée compilation*.

Le code binaire peut ensuite être transmis à d'autres ordinateurs qui pourront l'exécuter.


La compilation ne doit être faite qu'une seule fois, tant que le code source n'est pas modifié.


Si des améliorations au programme sont nécessaires, on modifie le code source et on recommence la compilation.

compilation

On obtient alors une nouvelle version en code binaire.


* Pour simplifier, on ne parlera pas ici de l'interprétation qui est une autre façon de traduire.

Un ordinateur comprend mieux
  • Des instructions en anglais
  • Des instructions en langage binaire (0 et 1)
  • Des instructions exprimées en langage d'ordinateur (Fortran, LOGO,...)
  • Quand on lui parle doucement
Lorsque l'on rédige un programme pour un ordinateur, on utilise
  • Un langage d'ordinateur comme C, Basic, PHP,...
  • Le langage binaire (0 et 1), obligatoirement
  • De préférence l'anglais
  • Le chinois, car beaucoup d'ordinateurs sont fabriqués en Chine
Si l'on veut pouvoir modifier aisément un programme, il vaut mieux disposer de la version
  • En langage binaire
  • Le code source, en langage d'ordinateur
  • Le texte du programme rédigé en anglais ou en français
  • La question n'a pas de sens: c'est impossible de modifier un programme
La compilation, c'est
  • La traduction du texte du programme binaire vers un langage d'ordinateur
  • La traduction du programme rédigé en anglais vers le français
  • L'ajout, bout à bout, de différents programmes
  • La traduction en langage binaire du texte du programme rédigé en langage d'ordinateur
La compilation d'un programme doit se faire
  • Avant chaque utilisation du programme
  • Régulièrement, pendant le fonctionnement du programme
  • A chaque modification du code source
  • Jamais
Si je veux diffuser un programme, mais que je ne souhaite pas que les utilisateurs sachent comment il fonctionne
  • Je dois distribuer le code binaire uniquement
  • Le code source uniquement
  • Il n'y a aucun moyen d'empêcher les utilisateurs de comprendre comment le programme fonctionne
Si je veux diffuser un programme et que je souhaite que les utilisateurs puissent l'améliorer:
  • Je dois distribuer le code binaire uniquement
  • Je dois diffuser le code source du programme
  • Il n'y a aucun moyen de permettre aux utilisateurs d'améliorer un programme, même s'ils sont très calés.
Si un malfaiteur veut diffuser un programme malfaisant (un virus,...) pour faire un maximum de dégâts et rendre difficile le travail des éditeurs d'antivirus
  • Il doit distribuer le code binaire uniquement
  • Il doit distribuer le code source uniquement


Droits d'auteur : Yves Mairesse. Ce cours est sous contrat Creative Commons