4 điểm bởi GN⁺ 2024-07-19 | 2 bình luận | Chia sẻ qua WhatsApp
  • Là một sinh viên khoa học máy tính, tôi đang học Prolog và lập trình logic
  • Tôi đã học những kiến thức cơ bản của Prolog thuần túy (nguyên tử, vị từ, cut, danh sách, v.v.) và đã thấy một bản triển khai hệ thống giao tiếp tác tử rất khủng khiếp chạy trên SICStus Prolog
  • Tôi muốn tìm hiểu thêm vì tôi nghĩ bản thân ngôn ngữ này có thể là một điểm mạnh
  • Vì lĩnh vực tôi đang học khá nền tảng, tôi muốn mở rộng kiến thức và chuyên sâu hơn về thế giới này cũng như một thế giới khác mà tôi thực sự yêu thích (ontology :D)
  • Tôi tò mò Prolog trong năm 2024 trông như thế nào và mọi người đang làm gì với Prolog

2 bình luận

 
cometkim 2024-07-19

Không hẳn là bản thân Prolog, nhưng tôi đồng ý rằng khái niệm Constraints sẽ tiếp tục hữu ích.

Nó cũng được áp dụng nhiều trong những nơi như DB, và trong các ngôn ngữ lập trình tiên tiến nhất cũng có những nỗ lực hỗ trợ Datalog như một tính năng hạng nhất. (Ví dụ: https://flix.dev/)

 
GN⁺ 2024-07-19
Ý kiến Hacker News
  • Prolog là một ngôn ngữ có lịch sử 50 năm, và với việc lập trình nói chung, nó có thể mang lại nhiều trở ngại hơn là hữu ích

    • Có nhiều hệ thống Prolog nhưng lại ít mã Prolog, nên cộng đồng bị phân mảnh
    • Việc học Prolog giống với câu hỏi "Làm sao để không vấp ngã trong Prolog?" hơn là "Làm việc này trong Prolog như thế nào?"
    • Một vài người tận tâm và những người theo chủ nghĩa lý tưởng đang bàn luận về tiềm năng của Prolog
    • Prolog có những điểm thú vị và vui vẻ, nhưng cũng có thể rủi ro
  • Scryer Prolog là một Prolog mã nguồn mở tương thích ISO với hiệu năng xuất sắc, đã thiết lập một cột mốc mới

  • Prolog và lập trình ràng buộc là những công cụ hữu ích

    • Prolog có một số vấn đề
      • Không có hệ thống module hay gói hiện đại
      • Trong các codebase lớn, cấu trúc phi logic là điều khó tránh khỏi nên mã trở nên phức tạp
      • Thiếu kiểu tĩnh và mạnh khiến việc viết mã vững chắc trở nên khó khăn
    • Prolog là một ngôn ngữ đáng kinh ngạc và có thể có chỗ đứng trong tương lai của lập trình
  • Về mặt lý thuyết, Prolog là ngôn ngữ tốt nhất

    • Nó có đặc tính của một hình thức logic, một ngôn ngữ tính toán và một ngôn ngữ metaprogramming
    • Trên thực tế, có các implementation hiệu năng cao và một cộng đồng nhỏ
    • Có thể làm được rất nhiều thứ với Prolog, nhưng thường không rõ phải làm như thế nào
  • Việc có thêm người mới quan tâm đến Prolog là điều đáng mừng

    • Đang phát triển thư viện để có thể dễ dàng sử dụng Trealla Prolog với Wasm
    • Liên kết: TypeScript Library, Go Library
    • Scryer và Trealla đều hướng tới tính tương thích ISO
  • Prolog là một ngôn ngữ đòi hỏi một cách tư duy mới

    • Mô hình khai báo là tốt, nhưng không có ưu thế lớn so với các ngôn ngữ khác
    • Nó có sức biểu đạt rất mạnh với các bài toán có thể áp dụng CLPFD
    • Việc dùng LLM để tạo các fact/cơ sở dữ liệu Prolog khá thú vị
  • "Phép màu" của Prolog dựa trên các khái niệm hợp nhất và quay lui

    • Là một ngôn ngữ khai báo, nó có thể biểu đạt các bài toán ngược một cách đơn giản, nhưng không cung cấp lời giải
    • Nếu bộ máy giải quyết được cải thiện, việc sử dụng các ngôn ngữ lập trình ràng buộc khai báo như Prolog sẽ tăng lên
  • Tôi hầu như không biết gì về Prolog, nhưng đã rất thích tutorial về Datalog

  • Thuật toán tìm kiếm của lập trình logic thì chậm

    • Prolog có thể làm mọi thứ, nhưng không phải mọi thứ đều làm tốt
    • Prolog phù hợp với một số công việc cụ thể như bảo trì cơ sở dữ liệu