Tôi vừa đọc một lời giải thích khác về vấn đề tạm dừng, và nó khiến tôi suy nghĩ về tất cả các vấn đề mà tôi đã thấy được đưa ra như các ví dụ liên quan đến các chuỗi vô hạn. Nhưng tôi không bao giờ sử dụng trình tự vô hạn trong các chương trình của mình - chúng mất quá nhiều thời gian. Tất cả các ứng dụng trong thế giới thực có giới hạn dưới và trên. Ngay cả các thực tế không thực sự là thực - chúng là các xấp xỉ được lưu trữ dưới dạng 32/64 bit, v.v.
Vì vậy, câu hỏi là, có một tập hợp con của các chương trình có thể được xác định nếu chúng dừng lại? Là nó đủ tốt cho hầu hết các chương trình. Tôi có thể xây dựng một tập hợp các cấu trúc ngôn ngữ mà tôi có thể xác định 'khả năng tạm dừng' của chương trình không. Tôi chắc chắn rằng điều này đã được nghiên cứu ở đâu đó trước đây vì vậy bất kỳ con trỏ sẽ được đánh giá cao. Ngôn ngữ sẽ không được hoàn thiện, nhưng liệu có thứ gì đó gần như hoàn thiện đến mức đủ tốt?
Tất nhiên, một cấu trúc như vậy sẽ phải loại trừ đệ quy và không bị ràng buộc trong khi các vòng lặp, nhưng tôi có thể viết một chương trình mà không cần những thứ đó đủ dễ dàng.
Đọc từ đầu vào tiêu chuẩn làm ví dụ sẽ phải bị ràng buộc, nhưng điều đó đủ dễ dàng - tôi sẽ giới hạn đầu vào của mình ở mức 10.000.000 ký tự, v.v., tùy thuộc vào miền vấn đề.
tia
[Cập nhật]
Sau khi đọc các bình luận và câu trả lời có lẽ tôi nên nói lại câu hỏi của mình.
Đối với một chương trình nhất định trong đó tất cả các đầu vào bị ràng buộc, bạn có thể xác định xem chương trình đó có dừng không. Nếu vậy các ràng buộc của ngôn ngữ là gì và các giới hạn của bộ đầu vào là gì. Tập hợp tối đa của các cấu trúc này sẽ xác định một ngôn ngữ có thể được suy ra để tạm dừng hoặc không. Có một số nghiên cứu đã được thực hiện trên này?
[Cập nhật 2]
Đây là câu trả lời, đúng vậy, trở lại vào năm 1967 từ http://www.isp.uni-luebeck.de/kps07/files/ con / gnerner.pdf
Rằng vấn đề tạm dừng có thể được giải quyết ít nhất về mặt lý thuyết cho các hệ thống trạng thái đã được tranh luận bởi Minsky vào năm 1967 [4]: mô hình lặp đi lặp lại. Thời lượng của mẫu lặp lại này không thể vượt quá số trạng thái bên trong của máy ...
(và vì vậy nếu bạn gắn bó với các máy turing hữu hạn thì bạn có thể xây dựng một nhà tiên tri)