2 điểm bởi GN⁺ 2024-11-02 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Hazel là một môi trường lập trình hàm live trên web, đặt typed holes làm trung tâm, cho phép kiểm tra kiểu, thao tác và chạy cả những chương trình chưa hoàn thiện
  • Điểm cốt lõi là mô hình hóa các trạng thái chưa hoàn chỉnh như chỗ trống, lỗi kiểu và xung đột merge thành holes, qua đó giảm những đoạn mà editor đánh mất ngữ nghĩa
  • Các chương trình chưa hoàn chỉnh có thể tạo trong Hazel được định nghĩa cả tĩnh lẫn động, và có thể có kiểu chưa hoàn chỉnh cũng như kết quả thực thi chưa hoàn chỉnh
  • Đối tượng triển khai là ngôn ngữ hàm thuộc họ Elm/ML, và được dùng làm nền tảng cho giáo dục lập trình, biên tập cộng tác, học chứng minh và nghiên cứu hoàn thành mã bằng AI
  • Đây là dự án nghiên cứu mã nguồn mở do Future of Programming Lab của University of Michigan dẫn dắt; bản build web để trải nghiệm và mã nguồn trên GitHub đã được công khai

Ý tưởng cốt lõi của Hazel

  • Hazel là một môi trường lập trình hàm live, được xây dựng xoay quanh typed holes
  • Ngay cả chương trình chưa hoàn thiện cũng có thể tiếp tục các thao tác sau
    • Kiểm tra kiểu
    • Thao tác
    • Thực thi
  • Mục tiêu là tạo ra một môi trường vẫn duy trì phản hồi có ý nghĩa ngay cả khi mã đang được chỉnh sửa ở trạng thái bị hỏng

Cách xử lý chương trình chưa hoàn chỉnh

  • Trong quá trình lập trình thông thường, văn bản chương trình thường xuyên rơi vào trạng thái chưa hoàn chỉnh về mặt hình thức
    • Chỗ trống
    • Lỗi kiểu
    • Xung đột merge
  • Các định nghĩa ngôn ngữ lập trình hiện có không gán ngữ nghĩa hình thức cho những cấu trúc này, nên ngay cả hành vi của phần mã đã hoàn chỉnh cũng khó được xử lý dưới dạng phản hồi live
  • Editor và công cụ buộc phải dựa vào các heuristic phức tạp để cung cấp liền mạch hoàn thành mã, kiểm tra kiểu và điều hướng mã
  • Hazel mô hình hóa chương trình chưa hoàn chỉnh thành chương trình có holes
    • Hole biểu thị phần chương trình còn thiếu
    • Nó hoạt động như một lớp màng bao lấy phần có lỗi hoặc phần xung đột trong môi trường cộng tác
  • Cách tiếp cận này dựa trên lý thuyết kiểu modal theo ngữ cảnh và lý thuyết kiểu dần dần

Môi trường Hazel và mô hình thực thi

  • Hazel đang được triển khai như một môi trường lập trình trên web cho ngôn ngữ hàm tương tự Elm/ML
  • Mọi chương trình chưa hoàn chỉnh có thể tạo ra bằng ngôn ngữ thao tác chỉnh sửa của Hazel đều được định nghĩa cả tĩnh lẫn động
    • Có thể có kiểu chưa hoàn chỉnh
    • Khi thực thi, có thể tạo ra kết quả chưa hoàn chỉnh
  • Nhờ đặc tính này, Hazel được dùng làm nền tảng cho nghiên cứu về môi trường lập trình tương lai và giáo dục lập trình

Tầm nhìn nghiên cứu và tài liệu liên quan

Nghiên cứu gần đây và dòng xuất bản

Sử dụng và đóng góp

Chưa có bình luận nào.

Chưa có bình luận nào.