Câu trả lời:
Có một số mô hình con của mô hình lập trình mệnh lệnh, chẳng hạn như các mô hình lập trình thủ tục hoặc hướng đối tượng .
Trong mô hình lập trình mệnh lệnh, bạn mô tả thuật toán từng bước, ở nhiều mức độ trừu tượng khác nhau.
Ví dụ về các ngôn ngữ lập trình hỗ trợ mô hình thủ tục:
Nó thường đề cập đến các ngôn ngữ thể hiện hệ thống phân cấp của các kiểu kế thừa cả phương thức và trạng thái từ kiểu cơ sở đến kiểu dẫn xuất, nhưng cũng bao gồm JavaScript dựa trên nguyên mẫu khác thường.
Ví dụ về các ngôn ngữ lập trình hỗ trợ mô hình OO:
Có một số mô hình con của mô hình lập trình khai báo, chẳng hạn như mô hình lập trình chức năng hoặc logic.
Trong mô hình lập trình khai báo, bạn mô tả một kết quả hoặc một mục tiêu và bạn nhận được nó thông qua một " hộp đen ". Ngược lại với mệnh lệnh.
Ví dụ về các ngôn ngữ lập trình hỗ trợ mô hình lập trình khai báo:
Lập trình hàm nhấn mạnh việc áp dụng các hàm mà không có tác dụng phụ và không có trạng thái có thể thay đổi. Các hệ thống khai báo ở trên thể hiện các khía cạnh nhất định của lập trình chức năng.
Ví dụ về các ngôn ngữ lập trình hỗ trợ mô hình chức năng khai báo:
Lập trình khai báo là nơi bạn nói những gì bạn muốn mà không cần phải nói cách thực hiện. Với lập trình thủ tục, bạn phải chỉ định các bước chính xác để có được kết quả.
Ví dụ, SQL mang tính khai báo nhiều hơn là thủ tục, bởi vì các truy vấn không chỉ định các bước để tạo ra kết quả.
Để tôi cho bạn một ví dụ thực tế: Tôi cần một tách trà.
Thủ tục:
Khai báo:
Trong ngôn ngữ thủ tục, bạn xác định toàn bộ quy trình và cung cấp các bước cách thực hiện. Bạn chỉ cần cung cấp đơn đặt hàng và xác định quy trình sẽ được phục vụ như thế nào.
Trong ngôn ngữ khai báo, bạn chỉ cần đặt lệnh hoặc lệnh và để nó nằm trên hệ thống cách hoàn thành lệnh đó. Bạn chỉ cần kết quả của mình mà không cần tìm hiểu kỹ về cách thực hiện.
Lập trình thủ tục :
Trong lập trình thủ tục, khi chương trình bắt đầu, nó tuân theo một tập hợp các lệnh. Các hướng dẫn có thể thay đổi dựa trên một số nội dung tệp hoặc bộ nhớ, nhưng nhìn chung, nó không khác nhau nhiều. đầu vào cho chương trình thường không phải từ đầu vào của người dùng trong thời gian thực, mà là từ một tập hợp dữ liệu được thu thập trước.
Lập trình khai báo:
Trong chương trình hướng sự kiện khai báo tập trung xung quanh một phần dữ liệu với các hành động tùy chọn mà chương trình có thể thực hiện. Ví dụ: mỗi "sự kiện" trong trình xử lý văn bản là bất kỳ thay đổi nào của chuột hoặc bàn phím (hoặc tệp) ảnh hưởng đến dữ liệu, (các) tài liệu. Chúng không cần được thực hiện theo bất kỳ thứ tự nào. Lập trình hướng sự kiện có dạng các chương trình nhỏ (trình xử lý sự kiện) tất cả đều hoạt động trên một tập dữ liệu chung, do đó mỗi chương trình nhỏ có thể sử dụng cùng một dữ liệu, tài liệu trong ví dụ này.
Sự khác biệt chính giữa hai ngôn ngữ lập trình là, Trong lập trình thủ tục, chúng tôi cho máy tính biết cách giải quyết vấn đề và trong lập trình khai báo, chúng tôi cho máy tính biết vấn đề chúng tôi muốn giải quyết.
Để giải quyết nhận xét có thể xem được và có thể cung cấp một ví dụ giữa sự khác biệt của cả hai. Ansible là thủ tục khi một cái gì đó như con rối hoặc terraform được khai báo. Ví dụ: bạn tạo một tệp yaml không hồi phục để triển khai 10 phiên bản ec2 như sau:
-ec2: count: 10 image: ami-058c6e5b73b074cd2 instance_type: t2.micro
Nếu bạn chạy tệp đó hai lần, bạn sẽ có 20 phiên bản t2.micro ec2. Nếu bạn viết tương đương bằng một ngôn ngữ khai báo như terraform và chạy nó hai lần, bạn sẽ chỉ có 10 phiên bản t2.micro đang chạy bất kể bạn đã chạy nó bao nhiêu lần. Các ngôn ngữ khai báo chỉ định trạng thái kết thúc. Các ngôn ngữ thủ tục chỉ làm những gì bạn nói với nó mà không cần quan tâm đến trạng thái hiện tại hay quá khứ.
Vậy YAML là ngôn ngữ lập trình khai báo? Bởi vì chúng tôi xác định những gì chúng tôi muốn thay vì viết logic thực tế.
Tôi đang hỏi điều này vì nếu có ai biết Ansible là công cụ quản lý cấu hình, nó sử dụng YAML nhưng nó vẫn thuộc thể loại ngôn ngữ thủ tục.
Trong cách tiếp cận thủ tục, bạn mã hóa hướng dẫn của mình để đạt được kết quả. Trong cách tiếp cận khai báo, bạn xác định những gì cần được giải quyết là kiến thức của việc giải quyết vấn đề. Hãy xem ví dụ về cách tiếp cận theo Thủ tục hoặc Khai báo mà tôi đã thực hiện trong cả hai cách tiếp cận.
Như bạn thấy trong ví dụ, trong cách tiếp cận khai báo, bạn không cần phải hướng dẫn CÁCH giải quyết vấn đề.