Các thuộc tính như sử dụng bộ nhớ của hàm có thể được thể hiện bằng ngôn ngữ được gõ phụ thuộc không?


11

Giả sử người ta muốn lý giải về các thuộc tính của mã ngoài những thứ như tính toàn bộ và độ tinh khiết của chức năng - người ta cũng quan tâm đến mức tiêu thụ bộ nhớ hoặc độ phức tạp thuật toán của hàm. Điều này có thể được thực hiện thông qua hệ thống gõ và hiệu ứng phụ thuộc?


2
Trong video này, Brian McKenna cung cấp một ví dụ về độ phức tạp thời gian mã hóa thành các loại.
Anton Trunov

Câu trả lời:


8

Vâng, nó có thể. Mặc dù về mặt khái niệm nó không khó lắm, nhưng nó đã không được nghiên cứu nhiều. Một khía cạnh của lĩnh vực này là ngữ nghĩa chi phí, chẳng hạn như nghiên cứu được thực hiện bởi Guy Blelloch .

Theo hướng của video mà Anton đề cập là công việc của Daniellson trong Phân tích độ phức tạp thời gian bán kết nhẹ cho các cấu trúc dữ liệu chức năng thuần túy . Điều này thực sự sử dụng một đơn vị để mang theo một chi phí cho mỗi hoạt động. Một đơn nguyên tương tự, ở cấp độ ngữ nghĩa, được sử dụng trong ngữ nghĩa chi phí biểu thị cho các ngôn ngữ chức năng với các loại quy nạp . Đây là một bài báo năm 2016 đang làm một cái gì đó tương tự trong Coq, Thư viện Coq để xác minh nội bộ về thời gian chạy .

Người NuPRL từ lâu cũng đã thích làm những việc như thế này. Trong việc thể hiện sự phức tạp tính toán trong lý thuyết loại hình xây dựng , về cơ bản là tính toán cho một ngữ nghĩa hoạt động có cấu trúc. Điều thú vị hơn một chút là bạn có thể phản ánh ngữ nghĩa ngôn ngữ sang ngôn ngữ. Ví dụ trong phần cuối cùng, phần 12, của Lý thuyết loại tính toán Naive minh họa và thảo luận về loại điều này.

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.