Tôi đang xem xét trình biên dịch Schalin. Nó to và phức tạp. Ngoài ra, nếu tôi hiểu đúng, tác giả đã lên kế hoạch viết một loạt các bài báo chi tiết các khía cạnh của việc thực hiện, nhưng không bao giờ có xung quanh để làm điều đó.Suy luận kiểu toàn cầu trong trình biên dịch Đề án Stalin
Khía cạnh của Stalin mà tôi quan tâm là suy luận kiểu toàn cục: suy ra các loại sự vật dựa trên việc sử dụng chúng ở những nơi khác trong chương trình. Liệu Stalin có thực sự làm điều đó? Nếu có, làm thế nào, và ở đâu trong cơ sở mã của nó? Nó có sử dụng một biến thể/mở rộng của thuật toán Hindley-Milner không?
Bạn đã thấy [cặp Q/A này tại cstheory.SE] (http://cstheory.stackexchange.com/questions/9765/the-stalin-compiler-brutally-optimizes-but-how) chưa? Về cơ bản nó cho thấy rằng Stalin không cần phải xây dựng "lên" từ các loại như vậy, nó đã infers * tất cả mọi thứ * về giá trị và cách sử dụng của nó. – Leushenko
@Leushenko cảm ơn! Tôi nghĩ rằng bạn là đúng: có vẻ như trình biên dịch này "bỏ qua" khái niệm về các loại, và hoạt động trên các kiểu dữ liệu nguyên thủy. – yotsov