Les programmes d'ordinateur

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.

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

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

Questions de révision

Un ordinateur comprend mieux
Des instructions en anglais

Non.
Les ordinateurs sont actuellement encore incapables de comprendre une langue humaine

Des instructions en langage binaire (0 et 1)

Réponse correcte.
Exact. C'est d'ailleurs le seul langage qu'un ordinateur puisse comprendre.

Des instructions exprimées en langage d'ordinateur (Fortran, LOGO,...)

Réponse fausse.
Ces langages d'ordinateurs sont des intermédiaires vers le langage binaire

Quand on lui parle doucement

Parler doucement est une bonne idée. Mais cela n'aide pas un ordinateur à comprendre.

Lorsque l'on rédige un programme pour un ordinateur, on utilise
Un langage d'ordinateur comme C, Basic, PHP,...

Correct.
Les programmeurs utilisent des langages d'ordinateurs qui sont à mi-chemin entre une langue humaine et des notations mathématiques.
Il faut encore ensuite faire traduire les textes rédigés vers le langage binaire

Le langage binaire (0 et 1), obligatoirement

Réponse correcte.
Exact. C'est d'ailleurs le seul langage qu'un ordinateur puisse comprendre.

De préférence l'anglais

Réponse fausse.
Ces langages d'ordinateurs sont des intermédiaires vers le langage binaire

Le chinois, car beaucoup d'ordinateurs sont fabriqués en Chine

Réponse fausse
Les ordinateurs ne comprennent pas plus le chinois qu'une autre langue humaine.

Si l'on veut pouvoir modifier aisément un programme, il vaut mieux disposer de la version
En langage binaire

Réponse fausse
Le texte du programme en 0 et en 1 est quasiment incompréhensible pour un être humain. On ne peut pas travailler avec ce texte pour modifier un programme.

Le code source, en langage d'ordinateur

Réponse correcte.
Le code source est compréhensible à des humains (compétents). Il est donc possible de le modifier.

Le texte du programme rédigé en anglais ou en français

Réponse fausse.
Il n'existe aucune version utilisable rédigée en langue humaine

La question n'a pas de sens: c'est impossible de modifier un programme

Réponse fausse
Un programme peut toujours être revu pour être amélioré ou pour supprimer des erreurs (des bugs)

La compilation, c'est
La traduction du texte du programme binaire vers un langage d'ordinateur

Réponse fausse
On ne traduit (quasiment) jamais un programme en binaire vers un langage d'ordinateur.

La traduction du programme rédigé en anglais vers le français

Réponse fausse.
Les instructions rédigées en langues humaines sont inutilisables pour les ordinateurs.

L'ajout, bout à bout, de différents programmes

Réponse fausse.
Il faut vraiment revoir les informations données plus haut.

La traduction en langage binaire du texte du programme rédigé en langage d'ordinateur

Réponse exacte
Le programme rédigé en langage d'ordinateur est traduit en langage binaire durant la compilation.

La compilation d'un programme doit se faire
Avant chaque utilisation du programme

Réponse fausse
Il faut revoir les informations données plus haut

Régulièrement, pendant le fonctionnement du programme

Réponse fausse.
Cela causerait des modifications du programme durant son fonctionnement.

A chaque modification du code source

Réponse exacte.
Si l'on veut profiter des améliorations d'un programme, il doit être re-compilé après chaque modification du code source.

Jamais

Réponse fausse
Un programme non compilé n'est pas utilisable par un ordinateur.

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

Réponse exacte
Avec le code binaire, ceux qui reçoivent mon programme pourront le faire fonctionner mais pourront très difficilement comprendre comment il fonctionne (sauf s'ils lisent le binaire). Ce qui est extrêmement complexe.

Le code source uniquement

Réponse fausse.
Si je distribue le code source, un informaticien qui connaît le langage d'ordinateur utilisé pourra lire ce code et tenter de comprendre comment il fonctionne.

Il n'y a aucun moyen d'empêcher les utilisateurs de comprendre comment le programme fonctionne

Réponse fausse.
Il y a moyen de rendre l'étude du fonctionnement du programme très difficile ou presque impossible si l'on ne distribue que le code source.
Mais quelqu'un qui dispose de beaucoup de connaissances en informatique pourra peut-être comprendre le fonctionnement du code binaire.

Si je veux diffuser un programme et que je souhaite que les utilisateurs puissent l'améliorer:
Je dois distribuer le code binaire uniquement

Réponse fausse
Avec le code binaire, ceux qui reçoivent mon programme pourront très difficilement l'étudier et le modifier.
Il y a donc une meilleure réponse encore à cette question. Laquelle?

Je dois diffuser le code source du programme

Réponse correcte.
Le code source est assez proche du langage humain. Si un utilisateur modifie le code source, il pourra recompiler le programme avec ses améliorations.

Il n'y a aucun moyen de permettre aux utilisateurs d'améliorer un programme, même s'ils sont très calés.

Réponse fausse.
Il existe une version du programme que des humains peuvent assez aisément modifier et améliorer. Laquelle?

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

Réponse correcte
Avec le code binaire seulement, les concepteurs d'antivirus auront souvent de la peine à étudier le fonctionnement du programme malfaisant et à trouver un remède.

Il doit distribuer le code source uniquement

Réponse fausse.
Le code source est assez simple à étudier pour comprendre le fonctionnement du virus. Et il faudrait encore que les utilisateurs compilent le programme pour pouvoir l'utiliser...
Personne ne sera sans doute assez fou pour le faire.

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