Ich las gerade eine weitere Erklärung des Halteproblems und dachte an all die Probleme, die ich gesehen habe und die als Beispiele angeführt sind, beinhalten unendliche Sequenzen. Aber ich verwende in meinen Programmen niemals unendliche Sequenzen - sie dauern zu lange. Alle Anwendungen der realen Welt haben Unter- und Obergrenzen. Sogar reelle Zahlen sind keine reellen Zahlen - es handelt sich um Näherungswerte, die als 32/64 Bit usw. gespeichert sind.
Die Frage ist also, ob es eine Untergruppe von Programmen gibt, die bestimmt werden können, wenn sie anhalten. Ist es gut genug für die meisten Programme. Kann ich eine Reihe von Sprachkonstrukten erstellen, mit denen ich die Haltbarkeit eines Programms bestimmen kann? Ich bin mir sicher, dass dies irgendwo zuvor untersucht wurde, daher wären alle Hinweise willkommen. Die Sprache wäre nicht vollständig, aber gibt es so etwas wie fast vollständig, was gut genug ist?
Natürlich müsste ein solches Konstrukt eine Rekursion und unbegrenzte while-Schleifen ausschließen, aber ich kann ein Programm ohne diese einfach genug schreiben.
Das Lesen von der Standardeingabe als Beispiel müsste eingeschränkt sein, aber das ist einfach genug - ich beschränke meine Eingabe auf 10.000.000 Zeichen usw., abhängig von der Problemdomäne.
tia
[Aktualisieren]
Nachdem ich die Kommentare und Antworten gelesen habe, sollte ich vielleicht meine Frage wiederholen.
Für ein bestimmtes Programm, in dem alle Eingaben beschränkt sind, können Sie bestimmen, ob das Programm anhält. Wenn ja, wie lauten die Einschränkungen der Sprache und wie lauten die Grenzen des Eingabesatzes? Die maximale Menge dieser Konstrukte würde eine Sprache bestimmen, die angehalten werden kann oder nicht. Gibt es eine Studie darüber?
[Update 2]
Hier ist die Antwort: Ja, schon 1967 von http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf
Dass das Stopp-Problem zumindest theoretisch für Systeme mit endlichen Zuständen gelöst werden kann, hat Minsky bereits 1967 argumentiert [4]: „... jede Maschine mit endlichen Zuständen wird, wenn sie sich selbst überlassen bleibt, schließlich in eine vollkommene Periodizität fallen sich wiederholendes Muster. Die Dauer dieses sich wiederholenden Musters darf die Anzahl der internen Zustände der Maschine nicht überschreiten ... “
(Und wenn Sie sich an endliche Turingmaschinen halten, können Sie ein Orakel bauen.)