Stavo solo leggendo un'altra spiegazione del problema di arresto, e mi ha fatto pensare a tutti i problemi che ho visto che sono riportati come esempi che coinvolgono sequenze infinite. Ma non uso mai sequenze infinite nei miei programmi: impiegano troppo tempo. Tutte le applicazioni del mondo reale hanno limiti inferiori e superiori. Anche i reali non sono veri: sono approssimazioni memorizzate come 32/64 bit ecc.
Quindi la domanda è: esiste un sottoinsieme di programmi che può essere determinato se si fermano? È abbastanza buono per la maggior parte dei programmi. Posso costruire un insieme di costrutti linguistici che posso determinare l '"haltability" di un programma. Sono sicuro che questo è stato studiato da qualche parte in precedenza, quindi qualsiasi suggerimento sarebbe apprezzato. La lingua non sarebbe completa, ma esiste qualcosa di quasi completo che è abbastanza buono?
Abbastanza naturalmente un tale costrutto dovrebbe escludere la ricorsione e unbound illimitato mentre i loop, ma posso scrivere un programma senza quelli abbastanza facilmente.
La lettura dell'input standard come esempio dovrebbe essere limitata, ma è abbastanza facile: limiterò il mio input a 10.000.000 di caratteri, ecc., A seconda del dominio del problema.
tia
[Aggiornare]
Dopo aver letto i commenti e le risposte forse dovrei riaffermare la mia domanda.
Per un determinato programma in cui tutti gli ingressi sono limitati, è possibile determinare se il programma si interrompe. In tal caso, quali sono i vincoli della lingua e quali sono i limiti del set di input. L'insieme massimo di questi costrutti determinerebbe un linguaggio che può essere dedotto per fermarsi o meno. C'è stato qualche studio su questo?
[Aggiornamento 2]
ecco la risposta, sì, nel lontano 1967 da http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf
Che il problema dell'arresto possa almeno essere teoricamente risolto per i sistemi a stati finiti è già stato sostenuto da Minsky nel 1967 [4]: “... qualsiasi macchina a stati finiti, se lasciata completamente a se stessa, finirà per cadere in un periodico perfettamente periodico modello ripetitivo. La durata di questo schema ripetuto non può superare il numero di stati interni della macchina ... "
(e quindi se ti attacchi a macchine da turismo finite, puoi costruire un oracolo)