Je lisais juste une autre explication du problème d'arrêt, et cela m'a fait penser que tous les problèmes que j'ai vus qui sont donnés à titre d'exemples impliquent des séquences infinies. Mais je n'utilise jamais de séquences infinies dans mes programmes - elles prennent trop de temps. Toutes les applications du monde réel ont des limites inférieures et supérieures. Même les réels ne sont pas vraiment réels - ce sont des approximations stockées en 32/64 bits, etc.
La question est donc de savoir s'il existe un sous-ensemble de programmes qui peuvent être déterminés s'ils s'arrêtent? Est-ce assez bon pour la plupart des programmes. Puis-je construire un ensemble de constructions de langage que je peux déterminer la «cessabilité» d'un programme. Je suis sûr que cela a été étudié quelque part auparavant, donc tout conseil serait apprécié. Le langage ne serait pas complet, mais existe-t-il quelque chose de presque complet qui soit assez bon?
Naturellement, une telle construction devrait exclure la récursivité et les boucles while non limitées, mais je peux écrire un programme sans celles-ci assez facilement.
La lecture de l'entrée standard comme exemple devrait être limitée, mais c'est assez facile - je limiterai ma saisie à 10 000 000 caractères, etc., en fonction du domaine problématique.
tia
[Mise à jour]
Après avoir lu les commentaires et les réponses, je devrais peut-être reformuler ma question.
Pour un programme donné dans lequel toutes les entrées sont limitées, pouvez-vous déterminer si le programme s'arrête. Si oui, quelles sont les contraintes du langage et quelles sont les limites de l'ensemble d'entrée. L'ensemble maximal de ces constructions déterminerait un langage qui peut être déduit pour s'arrêter ou non. Y a-t-il une étude qui a été réalisée à ce sujet?
[Mise à jour 2]
voici la réponse, c'est oui, en 1967 depuis http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf
Le fait que le problème d'arrêt puisse être au moins théoriquement résolu pour les systèmes à états finis a déjà été avancé par Minsky en 1967 [4]: «... toute machine à états finis, si elle est laissée à elle-même, tombera finalement dans une situation parfaitement périodique. motif répétitif. La durée de ce motif répétitif ne peut pas dépasser le nombre d'états internes de la machine ... »
(et donc si vous vous en tenez aux machines à turing finies, vous pouvez construire un oracle)