Sự khác biệt giữa chuẩn hóa A và chuẩn hóa K trong trình biên dịch là gì?


7

Hình thức hành chính thông thường là một đại diện trung gian của chương trình, trong đó mỗi lệnh ngay lập tức có một tên. Nó được sử dụng trong GHCOCaml .

Biểu mẫu K-chuẩn hóa là một biểu diễn trung gian trong đó mỗi lệnh bao gồm một phép gán và thao tác. Nó được sử dụng trong MLKit, Min-Caml và GoCaml.

Cả hai A-bình thường hóaK-bình thường liên quan đến việc tạo ra một biểu let với một sự tiếp nối.

Chuẩn hóa A và chuẩn hóa K dường như là cùng một biến đổi. Sự khác biệt giữa chúng sao cho chúng xứng đáng với những cái tên khác nhau?

Câu trả lời:


2

Theo như tìm kiếm của tôi đã dẫn tôi; Mẫu K-Bình thường được lấy cảm hứng từ Mẫu A-Bình thường , nhưng được sử dụng trong Phân tích Chế độ lưu trữ , là phân tích chương trình tĩnh được sử dụng để suy ra các chỉ thị quản lý bộ nhớ cho các chương trình chức năng.

Thuật ngữ này dường như bắt nguồn từ các ấn phẩm sau: L. Birkedal, M. Tofte và M. Vejlstrup. Từ suy luận khu vực đến máy von Neumann thông qua suy luận đại diện khu vực.

Một bản sao của ấn phẩm có thể được lấy tại thời điểm viết từ trang web của khoa L.Birkedal dưới các ấn phẩm .


2
Mặc dù nguồn gốc của thuật ngữ này rất thú vị, tôi không trực tiếp thấy điều này giải thích sự khác biệt như thế nào. Bạn có thể làm rõ chính xác sự khác biệt giữa hai thủ tục chuẩn hóa là gì? (nếu có?)
Thằn lằn rời rạc

1
Theo bài báo ( cs.cmu.edu/afs/cs/user/birkedal/pub/rri-popl96.ps.gz ), dạng K-normal liên kết mỗi biểu thức trung gian với một biến, nhưng không tuyến tính hóa các liên kết cho phép bởi vì làm như vậy sẽ cản trở suy luận khu vực.
Thực sự không nghiêm ngặt

1
Tôi chưa cập nhật câu trả lời vì sự hiểu biết hiện tại của tôi là tuyến tính hóa các ràng buộc không phải là một phần của định nghĩa về ANF, vì vậy tôi không chắc liệu đây có phải là một sự khác biệt hay không. Một sự khác biệt có thể được đề cập trong bài báo là các thuật ngữ phải được gõ, nhưng nếu điều này chỉ liên quan đến hệ thống loại được đưa ra trong bài báo, thì tôi cũng không rõ ràng.
soren-n
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.