Histoires de sciences

Histoires de science

En construction.

Brèves de science

Objectif : quinze à vingt lignes pour une idée.
Commentaires sur ces expériences, suggestions de thèmes, propositions de brèves sont tous les bienvenus.

Informatique : une science ?

Autour d'une voiture, on peut distinguer :

  • les conducteurs qui l'utilisent,
  • les ingénieurs qui la conçoivent et en supervisent la construction,
  • les chercheurs qui étudient les carburants, les matériaux, le fonctionnement du moteur...
Et on ne saurait prendre l'un pour l'autre !

Les mêmes séparations existent dans le monde de l'informatique : il y a des utilisateurs (professionnels ou non), il y a des concepteurs et des développeurs qui créent les applications, les logiciels et les programmes, et il y a des chercheurs. La science informatique est le domaine de ces derniers. Elle vise à produire des connaissances mathématiques sur le fonctionnement des ordinateurs, et à fournir des outils aux autres informaticiens : langages de programmation, techniques de conception et d'analyse de programmes...

Et de même qu'un physicien n'a pas besoin de savoir conduire, un chercheur en informatique peut être complètement perdu face à un ordinateur !

Que peut faire un ordinateur ?

Pour ainsi dire rien.
Plus précisément, un ordinateur ne sait réaliser qu'un nombre ridiculement petit d'opérations ridiculement simples : addition, comparaison, mémorisation d'un nombre, etc.

Tout ordinateur s'utilise donc par l'intermédiaire de "programmes" : des séquences d'instructions lui indiquant des opérations à effectuer. L'ordinateur réalise alors aveuglément les instructions qui lui sont données (à un rythme de quelques milliards par seconde !), et produit à son insu le résultat qui nous intéresse : lire de la musique, naviguer sur internet, ou corriger la trajectoire d'un avion...

Finalement, un ordinateur pourra exécuter toute tâche qu'un programmeur assez malin sera capable de décrire par des opérations suffisamment simples.

Les limites des ordinateurs sont-elles alors celles de leurs programmeurs humains ? Oui, mais pas seulement : on sait depuis les années 30 que certains problèmes, dits indécidables, seront à jamais hors de portée de la machine.

Se faire comprendre par la machine

Tout ordinateur ne fait qu'obéir à des programmes. Mais encore doit-il les comprendre ! La langue qu'entend l'ordinateur (appelée le "langage machine") est faite de 0 et de 1 et ne peut exprimer que des choses simplissimes. Il est très, très difficile pour un humain de créer ou de comprendre un programme compliqué dans cette langue.

Les programmeurs rédigent donc généralement leurs programmes dans ce qu'on appelle des "langages de programmation". Ces langages sont plus riches et plus faciles à manipuler que le langage machine, tout en étant beacoup plus précis et moins ambigus que les langues naturelles (français, anglais...).

Ces langages sont notamment suffisamment structurés et précis pour pouvoir être traduits automatiquement (on dit "compilés") en langage machine par un autre programme appelé compilateur.

Mézalor, mézalor, qui a compilé le compilateur ? Et qui a compilé le compilateur du compilateur ? Il faut bien casser la boucle un jour : un premier compilateur simple est écrit directement en langage machine. A partir de lui sont alors élaborés des langages de plus en plus complexes.

Note : mes travaux de recherche sont liés à l'étude et à la conception de ces langages de programmation.
Délire laborieux et appauvrissant que de composer de vastes livres, de développer en cinq cent pages une idée que l'on peut très bien exposer oralement en quelques minutes.
Jorge Luis Borges, "Fictions" (prologue).

Les ErNeSt vous propose des conférences transdisciplinaires de moins de 15 minutes pour aborder de façon nouvelle (et concise !) des problèmes de science comme de société.

Français