Tôi quan tâm đến các trình biên dịch được xác minh được chính thức hóa trong lý thuyết loại Martin-Löf, tức là Coq / Agda. Hiện tại tôi đã viết một ví dụ đồ chơi nhỏ. Do đó tôi có thể chứng minh rằng tối ưu hóa của tôi là chính xác. Ví dụ: bổ sung bằng 0 có thể được loại bỏ, tức là các biểu thức như "x + 0".
Có tối ưu hóa khó thực hiện với một trình biên dịch thông thường, đó sẽ là một ví dụ tốt? Có thể chứng minh các thuộc tính nhất định của chương trình cho phép tối ưu hóa mà không thể thực hiện với trình biên dịch thông thường không? (tức là không có suy luận có thể với một người hoạt động theo định lý)
Tôi sẽ quan tâm đến ý tưởng hoặc ví dụ và cả tài liệu tham khảo về chủ đề này.
Một câu hỏi liên quan: Bằng chứng chính xác của trình biên dịch
chỉnh sửa: Như Tsuyoshi đã đưa nó vào phần bình luận: Tôi đang tìm kiếm các kỹ thuật tối ưu hóa khó thực hiện nếu trình biên dịch được viết bằng (nói) C nhưng dễ thực hiện hơn nếu trình biên dịch được viết bằng (giả sử) Coq. Khi Agda biên dịch thành C (thông qua haskell), có thể làm mọi thứ có thể có trong Agda cũng ở C. Có lẽ lợi ích duy nhất của các trình duyệt định lý như Coq / Agda là trình biên dịch và tối ưu hóa có thể được xác minh.
edit2: Theo đề xuất của Vijay DI hãy viết những gì tôi đã đọc cho đến nay. Tôi chủ yếu tập trung vào Xavier Leroy và dự án CompCert tại INRIA (tôi có một bài báo dài 80 trang là một bài đọc tốt, tôi nghĩ vậy). Mối quan tâm thứ hai là công việc của Anton Setzer trên các chương trình tương tác. Tôi nghĩ rằng có lẽ công việc của anh ta có thể được sử dụng để chứng minh các thuộc tính về các chương trình IO và sự chia nhỏ các chương trình IO. Cảm ơn đã đề cập đến Sewell. Tôi đã nghe bài nói chuyện của anh ấy "Những câu chuyện từ rừng rậm" tại ICFP và đọc khoảng 2-3 bài báo của anh ấy. Nhưng tôi không đặc biệt nhìn vào công việc của anh ấy và của các đồng tác giả.
Tôi chưa tìm ra nơi để bắt đầu hoặc tìm kiếm các bài viết về tối ưu hóa trình biên dịch; ví dụ, tối ưu hóa nào sẽ rất thú vị khi xem xét trong cài đặt của trình biên dịch đã được xác minh.