Bạn đã xem luận án tiến sĩ, công thức đặc trưng cho xác minh chương trình cơ giới của Arthur Chargeuéraud chưa?
Thay vì xây dựng hệ thống loại và ngữ nghĩa bước nhỏ như quan hệ quy nạp, ông đưa ra một kỹ thuật để chuyển đổi các chương trình Caml thành các công thức đặc trưng. Về cơ bản, đây là một khái quát của ngữ nghĩa biến áp vị ngữ để hỗ trợ một tập hợp con rất lớn của Ocaml - đáng chú ý, bao gồm các phôi không an toàn như thế nào Obj.magic
. Để trích dẫn từ luận án của mình:
Tôi đã tập trung vào một tập hợp con của ngôn ngữ lập trình OCaml, đây là ngôn ngữ lập trình cấp cao, gọi theo giá trị, tuần tự. Việc triển khai CFML hiện tại hỗ trợ tính toán core lõi, bao gồm các hàm bậc cao hơn, đệ quy, đệ quy lẫn nhau và đệ quy đa hình. Nó hỗ trợ bộ dữ liệu, hàm tạo dữ liệu, khớp mẫu, ô tham chiếu, bản ghi và mảng. Tôi cung cấp một thư viện Caml bổ sung để thêm hỗ trợ cho con trỏ null và cập nhật mạnh.
Đó là một cách tiếp cận rất hấp dẫn nếu bạn muốn chứng minh một chương trình Caml cụ thể chính xác (ít hơn nếu bạn quan tâm đến tính siêu hình của nó).