Calculer et calculable Est-ce que ces trois modes de composition que sont la séquence, l'alternative et l'itérative sont suffisants ? Oui car il existe un théorème qui affirme que tout ce qui est calculable avec une machine peut être défini par quelques opérations élémentaires et ces trois opérations de composition. Ce théorème a été démontré au milieu du vingtième siècle par des mathématiciens et des logiciens.

Ceci soulève immédiatement la question : une machine peut-elle tout calculer ? La réponse, démontrée à la même époque, est négative : il existe des problèmes que ne peut pas résoudre une machine. Par exemple, il est démontré qu' il n'existe pas d'algorithme qui est capable de dire si une suite d'instructions contenant des alternatives et des itératives va s'arrêter lorsqu'on l'exécutera. Ces sujets soulèvent des problèmes importants étudiés par les mathématiciens, les informaticiens, les logiciens et les philosophes autour des notions de calcul et d'intelligence.

Mais, savoir qu'un problème est calculable ne suffit pas. En effet, il faut alors proposer des représentations des données du problème et des algorithmes pour le résoudre. Et, comme nous l'avons signalé dans notre exemple de calcul d'itinéraire, il faut que la mémoire nécessaire pour représenter les données soit dans les limites des capacités des machines car leur mémoire n'est pas infinie. Il faut également que le temps de calcul de l'algorithme soit raisonnable et adapté au problème : de moins d'une seconde de temps de réponse pour une application interactive à quelques heures pour une application scientifique complexe comme la prédiction météorologique. Ces deux questions posent des challenges scientifiques majeurs aux chercheurs pour déterminer les problèmes qui sont calculables en un temps raisonnable . Pour ces problèmes, on étudie alors la complexité des algorithmes pour trouver les algorithmes les plus efficaces en temps de calcul et en mémoire