Lập trình khai báo

Trong khoa học máy tính, lập trình khai báo (tiếng Anh: declarative programming) là một mẫu hình lập trình theo phong cách xây dựng cấu trúc và các yếu tố của chương trình máy tính để thể hiện tính logic của sự tính toán mà không mô tả luồng điều khiển của nó.[1]

Hầu hết các ngôn ngữ áp dụng kiểu này cố gắng giảm thiểu hoặc loại bỏ hiệu ứng lề bằng cách mô tả những gì chương trình phải hoàn thành về mặt miền vấn đề (problem domain), thay vì mô tả cách hoàn thành nó như thế nào như một chuỗi các thành phần cơ bản của ngôn ngữ lập trình[2] (còn như thế nào thì tùy thuộc vào hiện thực của ngôn ngữ). Điều này ngược với lập trình mệnh lệnh vốn hiện thực các giải thuật theo từng bước rõ ràng.

Lập trình khai báo thường xem chương trình như là lý thuyết của một logic hình thức, và tính toán như là suy luận trong không gian logic đó. Lập trình khai báo có thể giúp đơn giản hóa rất nhiều cho việc viết chương trình song song.[3]

Ngôn ngữ khai báo phổ biến bao gồm các ngôn ngữ truy vấn cơ sở dữ liệu (như SQL, XQuery), biểu thức chính quy, lập trình logic, lập trình hàm, và hệ thống quản lý cấu hình.

Định nghĩa

[sửa | sửa mã nguồn]

Lập trình khai báo thường được định nghĩa như kiểu lập trình không phải mệnh lệnh.

Mẫu hình con

[sửa | sửa mã nguồn]

Lập trình khai báo là một thuật ngữ chung (umbrella term) bao gồm một số mẫu hình lập trình nổi tiếng hơn.

Lập trình ràng buộc

[sửa | sửa mã nguồn]

Lập trình ràng buộc mô tả mối quan hệ giữa các biến dưới dạng các ràng buộc để chỉ ra thuộc tính của giải pháp đích. The set of constraints is solved by giving a value to each variable so that the solution is consistent with the maximum number of constraints. Constraint programming often complements other paradigms: functional, logical, or even imperative programming.

Ngôn ngữ miền chuyên biệt

[sửa | sửa mã nguồn]

Các ví dụ nổi tiếng về Ngôn ngữ miền chuyên biệt (domain-specific language, hay DSL) bao gồm yacc, QML, Make, Puppet, biểu thức chính quy, và một tập con của SQL (như câu lệnh truy vấn SELECT).

Ngôn ngữ lai

[sửa | sửa mã nguồn]

Lập trình logic

[sửa | sửa mã nguồn]

Ngôn ngữ lập trình logic như Prolog mô tả và truy vấn các quan hệ.

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ Lloyd, J.W., Practical Advantages of Declarative Programming
  2. ^ Declarative language in The Free On-line Dictionary of Computing, Editor Denis Howe.
  3. ^ “DAMP 2009: Workshop on Declarative Aspects of Multicore Programming”. Cse.unsw.edu.au. ngày 20 tháng 1 năm 2009. Truy cập ngày 15 tháng 8 năm 2013.

Liên kết ngoài

[sửa | sửa mã nguồn]
Chúng tôi bán
Bài viết liên quan
Pricing Strategy: Học cách định giá sản phẩm có 1-0-2 của Wine List
Pricing Strategy: Học cách định giá sản phẩm có 1-0-2 của Wine List
Hôm nay mình đọc được 2 case study thú vị về định giá sản phẩm. Cả hai đều dựa trên hiệu ứng mỏ neo (Price Anchoring Effect).
Story Quest là 1 happy ending đối với Furina
Story Quest là 1 happy ending đối với Furina
Dạo gần đây nhiều tranh cãi đi quá xa liên quan đến Story Quest của Furina quá, mình muốn chia sẻ một góc nhìn khác rằng Story Quest là 1 happy ending đối với Furina.
Tóm tắt chương 229: Quyết chiến tại tử địa Shunjuku - Jujutsu Kaisen
Tóm tắt chương 229: Quyết chiến tại tử địa Shunjuku - Jujutsu Kaisen
Vì Sukuna đã bành trướng lãnh địa ngay lập tức, Angel suy luận rằng ngay cả Sukuna cũng có thể tái tạo thuật thức bằng phản chuyển
Nhân vật Manabu Horikita - Class room of the Elite
Nhân vật Manabu Horikita - Class room of the Elite
Manabu Horikita (堀ほり北きた 学まなぶ, Horikita Manabu) là một học sinh của Lớp 3-A và là cựu Hội trưởng Hội học sinh