Sadece durma probleminin başka bir açıklamasını okuyordum ve bana sonsuz dizileri içeren örnekler olarak verilen tüm sorunları düşündüm. Ama programlarımda asla sonsuz diziler kullanmam - çok uzun sürüyorlar. Gerçek dünyadaki tüm uygulamaların alt ve üst sınırları vardır. Gerçekler bile gerçek değildir - 32/64 bit vb. Olarak depolanan yaklaşımlardır.
Öyleyse soru şu, eğer durmaları halinde belirlenebilecek bir program alt grubu var mı? Çoğu program için yeterince iyi mi. Bir programın 'durabilitesini' belirleyebileceğim bir dizi dil kurgu yapabilir miyim. Bunun daha önce bir yerlerde çalışıldığından eminim, böylece herhangi bir işaretçi takdir edilebilir. Dil tamamlanmadı, ama yeterince iyi olan neredeyse turing tamamlandı gibi bir şey var mı?
Doğal olarak yeterince böyle bir yapı, döngüler sırasında özyinelemeyi ve sınırsızlığı dışlamak zorunda kalacaktı, ancak yeterince kolay olmayan bir program yazabilirim.
Örnek olarak standart girdiden okumak sınırlandırılmış olmak zorunda kalacaktı, ama bu yeterince kolay - Girdilerimi sorun alanına bağlı olarak 10.000.000 karakter vb. İle sınırlayacağım.
Tia
[Güncelleştirme]
Belki yorumları ve cevapları okuduktan sonra sorumu tekrar cevaplamalıyım.
Tüm girişlerin sınırlandığı belirli bir program için programın durup durmayacağını belirleyebilirsiniz. Öyleyse, dilin kısıtlamaları nelerdir ve girdi kümesinin sınırları nelerdir? Bu yapıların azami kümesi, durup durulabilecek bir dil belirler. Bu konuda yapılmış bir çalışma var mı?
[Güncelleme 2]
İşte cevabı, evet, geri 1967’de http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf
Durma probleminin en azından teorik olarak kesin durum sistemleri için çözülebildiği, 1967'de Minsky tarafından zaten tartışılmıştı: tekrarlayan model Bu yinelenen modelin süresi, makinenin dahili durum sayısını aşamaz ... ”
(ve sonlu turing makinelerine sadık kalırsanız, bir kehanet inşa edebilirsiniz)