Có ai nghĩ về khả năng của một ngôn ngữ lập trình và một trình biên dịch, sao cho trình biên dịch có thể tự động thực hiện phân tích tiệm cận trong trường hợp xấu nhất? Trường hợp sử dụng mà tôi có trong đầu là một ngôn ngữ lập trình nơi tôi viết mã và biên dịch. Trình biên dịch cho tôi biết rằng mã của tôi chạy trong O (n ^ 2) (ví dụ). Nó thực hiện điều này bằng cách làm những gì mà những người thông minh làm phân tích thuật toán làm, có thể đếm các vòng lặp, v.v.
Do tạm dừng các vấn đề và vì người ta có thể có các chương trình hoạt động bằng cách khớp, ví dụ thuật toán Levin cho SAT chạy trong thời gian đa thức iff P = NP, tôi nghi ngờ rằng người ta có thể phải thiết kế ngôn ngữ lập trình đủ hạn chế để cho phép một cái gì đó như thế này Có kết quả tiêu cực, loại trừ một số loại ngôn ngữ lập trình khỏi việc có các trình biên dịch như vậy.
Tôi cũng sẽ quan tâm đến các hệ thống không phân tích chính xác tiệm cận, nhưng giới hạn trên "thú vị".
Tôi đặc biệt KHÔNG quan tâm đến hộp đen và các phương pháp thống kê lấy mẫu từ các đầu vào có độ dài cụ thể và tìm hiểu xem chương trình mất bao lâu. Những phương pháp này rất thú vị, nhưng chúng không phải là thứ tôi đang tìm kiếm. Tôi quan tâm đến các phương pháp chính xác có thể đưa ra giới hạn gần đúng .
Tôi sẽ rất biết ơn nếu ai đó có thể chỉ cho tôi một số tài liệu tham khảo về công việc theo hướng này.