ฉันเพิ่งอ่านคำอธิบายของปัญหาการหยุดพักอีกและมันทำให้ฉันคิดว่าปัญหาทั้งหมดที่ฉันเห็นที่ได้รับเป็นตัวอย่างที่เกี่ยวข้องกับลำดับอนันต์ แต่ฉันไม่เคยใช้ลำดับที่ไม่มีที่สิ้นสุดในโปรแกรมของฉัน - มันใช้เวลานานเกินไป แอปพลิเคชันในโลกแห่งความเป็นจริงทั้งหมดมีขอบเขตที่ต่ำและสูงกว่า แม้ reals ไม่ใช่ reals อย่างแท้จริง - มันเป็นค่าประมาณ 32/64 บิตเป็นต้น
ดังนั้นคำถามคือมีส่วนย่อยของโปรแกรมที่สามารถกำหนดได้หากพวกเขาหยุด? ดีพอสำหรับโปรแกรมส่วนใหญ่หรือไม่ ฉันสามารถสร้างชุดภาษาสร้างที่ฉันสามารถกำหนด 'haltability' ของโปรแกรม ฉันแน่ใจว่าสิ่งนี้ได้รับการศึกษามาก่อนเพื่อให้พอยน์เตอร์น่าชื่นชม ภาษาจะไม่ได้รับการทำให้สมบูรณ์ แต่มีสิ่งใดที่เกือบจะสมบูรณ์ซึ่งดีพอหรือไม่
โดยธรรมชาติแล้วโครงสร้างที่เพียงพอจะต้องไม่รวมการเรียกซ้ำและไม่ได้ถูก จำกัด ในขณะที่ลูป แต่ฉันสามารถเขียนโปรแกรมได้โดยไม่ต้องมีความสะดวกเพียงพอ
การอ่านจากอินพุตมาตรฐานเป็นตัวอย่างจะต้องถูก จำกัด แต่ก็ง่ายพอ - ฉันจะ จำกัด การป้อนข้อมูลของฉันเหลือ 10,000,000 ตัวอักษรขึ้นอยู่กับโดเมนปัญหา
TIA
[Update]
หลังจากอ่านความคิดเห็นและคำตอบบางทีฉันควรทบทวนคำถามอีกครั้ง
สำหรับโปรแกรมที่กำหนดซึ่งอินพุตทั้งหมดถูก จำกัด ขอบเขตคุณสามารถพิจารณาได้ว่าโปรแกรมหยุดทำงานหรือไม่ ถ้าเป็นเช่นนั้นข้อ จำกัด ของภาษาคืออะไรและอะไรคือข้อ จำกัด ของชุดอินพุต ชุดสูงสุดของโครงสร้างเหล่านี้จะกำหนดภาษาที่สามารถอนุมานได้ว่าจะหยุดหรือไม่ มีการศึกษาบางอย่างที่ทำกับสิ่งนี้หรือไม่?
[อัพเดท 2]
นี่คือคำตอบคือใช่ย้อนกลับไปในปี 1967 จากhttp://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf
ปัญหาการหยุดชะงักอย่างน้อยในทางทฤษฎีสามารถแก้ไขได้สำหรับระบบ fi nite-state ได้รับการถกเถียงกันโดย Minsky ในปี 1967 [4]: "... เครื่อง ite nite-state ใด ๆ หากปล่อยให้ตัวเองสมบูรณ์ รูปแบบซ้ำ ๆ ระยะเวลาของรูปแบบการทำซ้ำนี้ต้องไม่เกินจำนวนสถานะภายในของเครื่อง ... "
(และถ้าคุณติดกับเครื่องจักรทัวริง จำกัด คุณสามารถสร้าง oracle ได้)