Résumé: Selon le théorème de Rice, tout est impossible. Et pourtant, je fais ce truc soi-disant impossible tout le temps!
Bien entendu, le théorème de Rice ne dit pas simplement "tout est impossible". Il dit quelque chose d'assez plus spécifique: "Chaque propriété d'un programme informatique est non-calculable."
(Si vous voulez diviser les poils, chaque propriété "non triviale". Autrement dit, les propriétés que tous les programmes possèdent ou ne possèdent pas sont trivialement calculables. Mais toute autre propriété n'est pas calculable.)
C'est ce que dit ou semble dire le théorème. Et vraisemblablement un grand nombre de personnes très intelligentes ont soigneusement vérifié l'exactitude de ce théorème. Mais cela semble complètement défier la logique! Il existe de nombreuses propriétés de programmes qui sont triviales à calculer! Par exemple:
Combien d'étapes un programme exécute-t-il avant de s'arrêter? Décider si ce nombre est fini ou infini est précisément le problème de Halting, qui est non calculable. Décider si ce nombre est supérieur ou inférieur à un fini est trivial! Il suffit d’exécuter le programme jusqu’à étapes pour voir s’il s’arrête ou non. Facile!
De même, le programme utilise-t-il plus ou moins de unités de mémoire dans ses premières étapes d'exécution? Trivialement calculable.
Le texte du programme mentionne-t-il une variable nommée ? Une analyse textuelle triviale révélera la réponse.
Le programme appelle-t-il la commande ? Encore une fois, scannez le texte du programme à la recherche de ce nom de commande.
Je peux voir beaucoup de propriétés qui ne semblent pas non plus être calculables; Par exemple, combien d’additions une série complète du programme effectue-t-elle? Eh bien, c'est presque la même chose que de demander combien d' étapes le programme exécute, ce qui est pratiquement le problème de l'arrêt. Mais il semble y avoir de nombreuses propriétés de programme sur le bateau qui sont vraiment très faciles à calculer. Et pourtant, le théorème de Rice insiste sur le fait qu'aucun d'entre eux n'est calculable.
Qu'est-ce que j'oublie ici?