Carnet Web de Bastien Jaillot

Indécidabilité : morceaux de FAQ

Note publiée le .

J'ai beau avoir beaucoup de mal pour à être au point en Modèle de Calcul, j'apprécie énormément cette matière. C'est toujours pareil, je m'y intéresse quand les cours sont finis...

Je relis en ce moment les cours de l'ancien responsable de la matière à l'Université Bordeaux 1, le Dr Jean Betrema, et je tombe sur ces paragraphes que j'apprécie beaucoup :

Question. Lorsque j'écris un programme, il est donc impossible de savoir s'il boucle ?

Ecrire des programmes qui ne bouclent pas reste une activité louable, ... il est impossible d'automatiser totalement cette activité : un compilateur détecte les erreurs syntaxiques, mais ne peut pas détecter systématiquement les programmes qui bouclent. De même il est illusoire d'attendre la mise au point d'un langage dans lequel on ne pourrait écrire que des programmes qui ne bouclent pas.
L'indécidabilité du problème de l'arrêt, et plus généralement le théorème de Rice, sont plutôt des bonnes nouvelles pour les informaticiens : écrire des programmes corrects, qui calculent ce que l'on attend d'eux, sera toujours une activité demandant de la réflexion et de l'expérience.

Question. Cette fois j'ai compris, on vient de prouver que l'homme est supérieur à la machine !

Non. On a seulement prouvé que les méthodes pour écrire de bons programmes (qui ne bouclent pas, qui calculent ce que l'on souhaite) doivent être adaptées à chaque cas particulier, ou plutôt à chaque classe de cas. Cette adaptation est une activité sans fin ; savoir si l'homme est seul capable d'une telle "créativité" est une question de conviction personnelle. Personnellement cela me

surprendrait beaucoup.

Et de manière générale, si vous êtes intéressé par le sujet :