Sự khác biệt giữa lập trình hàm và lập trình mệnh lệnh

Sự khác biệt chính - Chức năng Lập trình so với lập trình mệnh lệnh
 

Các sự khác biệt chính giữa lập trình chức năng và lập trình mệnh lệnh là lập trình chức năng coi các tính toán là các hàm toán học và tránh thay đổi trạng thái và dữ liệu có thể thay đổi trong khi lập trình mệnh lệnh sử dụng các câu lệnh thay đổi trạng thái chương trình.

Một mô hình lập trình cung cấp một phong cách xây dựng cấu trúc và các yếu tố của một chương trình máy tính. Các mô hình lập trình giúp phân loại các ngôn ngữ lập trình dựa trên các tính năng của chúng. Một ngôn ngữ lập trình có thể ảnh hưởng đến nhiều mô hình hơn. Trong mô hình hướng đối tượng, chương trình được cấu trúc bằng các đối tượng và các đối tượng truyền thông điệp bằng các phương thức. Các lập trình logic có thể diễn tả tính toán độc quyền về mặt logic toán học. Hai mô hình lập trình khác là lập trình chức năng và lập trình mệnh lệnh. Lập trình hàm cho phép biểu diễn các tính toán như là sự đánh giá các hàm toán học. Lập trình mệnh lệnh cung cấp các câu lệnh thay đổi rõ ràng trạng thái của bộ nhớ. Bài viết này thảo luận về sự khác biệt giữa lập trình chức năng và lập trình mệnh lệnh.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Lập trình chức năng là gì
3. Lập trình mệnh lệnh là gì
4. Điểm tương đồng giữa lập trình hàm và lập trình mệnh lệnh
5. So sánh cạnh nhau - Lập trình chức năng so với lập trình mệnh lệnh ở dạng bảng
6. Tóm tắt

Lập trình chức năng là gì?

Lập trình hàm dựa trên Toán học. Nguyên tắc chính của lập trình hàm là tất cả các tính toán được coi là sự kết hợp của các hàm toán học riêng biệt. Một hàm toán học ánh xạ đầu vào thành đầu ra. Giả sử có một hàm gọi là f (x) = x * x. Giá trị x 1 được ánh xạ tới đầu ra 1. Giá trị x 2 được ánh xạ tới đầu ra 4. Giá trị x 3 được ánh xạ tới đầu ra 9, v.v..

Hình 01: Ví dụ về ngôn ngữ lập trình hàm - Haskell

Trong lập trình chức năng, các mẫu được xem xét. Các ngôn ngữ lập trình hàm Haskell, sử dụng phương pháp dưới đây để tìm tổng của các số.

Hàm sum có các giá trị nguyên và kết quả cũng sẽ là một số nguyên. Nó có thể được viết dưới dạng sum: [int] -> int. Tổng kết có thể được thực hiện bằng cách làm theo các mẫu dưới đây.

tổng [n] = n, tổng của một số là chính số đó.

Nếu có một danh sách các số, nó có thể được viết như sau. Số n đại diện cho số đầu tiên và ns đại diện cho các số khác

tổng (n, ns) = n + tổng ns.

Các mẫu trên có thể được áp dụng để tìm tổng của ba số là 3,4,5.

3 + tổng [4,5]

3 + (4 + tổng [5])

3+ 4 + 5 = 12

Hàm hoặc biểu thức được cho là có tác dụng phụ nếu nó sửa đổi một số trạng thái bên ngoài phạm vi của nó hoặc có tương tác quan sát được với các hàm gọi của nó bên cạnh giá trị trả về. Lập trình chức năng giảm thiểu tác dụng phụ này. Các thay đổi trạng thái không phụ thuộc vào đầu vào chức năng. Nó rất hữu ích khi hiểu hành vi của chương trình. Một nhược điểm của lập trình chức năng là học lập trình chức năng khó hơn so với lập trình bắt buộc.

Lập trình mệnh lệnh là gì?

Lập trình mệnh lệnh là một mô hình lập trình sử dụng các câu lệnh thay đổi trạng thái của chương trình. Nó tập trung vào việc mô tả cách thức một chương trình hoạt động. Các ngôn ngữ lập trình như Java, C và C # là các ngôn ngữ lập trình bắt buộc. Nó cung cấp một quy trình từng bước về những gì cần làm. Các ngôn ngữ lập trình mệnh lệnh chứa các cấu trúc như if, other, while, cho các vòng lặp, lớp, đối tượng và hàm.

Hình 02: Ví dụ về ngôn ngữ lập trình mệnh lệnh - Java

Tổng của mười số có thể được tìm thấy trong Java như sau. Trong mỗi lần lặp, giá trị i được thêm vào tổng và được gán cho biến tổng. Trong mỗi lần lặp, giá trị tổng tiếp tục cộng vào tổng được tính trước đó.

int tổng = 0;

cho (int i = 0; i< =10; i++)

tổng = tổng + i;

Lập trình mệnh lệnh rất dễ học, hiểu và gỡ lỗi. Rất dễ tìm thấy trạng thái chương trình vì sử dụng các biến trạng thái. Một số nhược điểm là nó có thể làm cho mã dài và cũng có thể giảm thiểu khả năng mở rộng.

Điểm giống nhau giữa lập trình hàm và lập trình mệnh lệnh là gì?

  • Cả lập trình hàm và lập trình mệnh lệnh đều là mô hình lập trình.

Sự khác biệt giữa lập trình hàm và lập trình mệnh lệnh là gì?

Chức năng và lập trình mệnh lệnh

Lập trình hàm là một mô hình lập trình coi tính toán là sự đánh giá các hàm toán học và tránh thay đổi trạng thái và dữ liệu có thể thay đổi. Lập trình mệnh lệnh là một mô hình lập trình sử dụng các câu lệnh, thay đổi trạng thái của chương trình.
 cấu trúc
Lập trình hàm chứa các lệnh gọi hàm và các hàm bậc cao hơn. Lập trình mệnh lệnh chứa if, other, while, cho các vòng lặp, hàm, lớp và đối tượng.
Ngôn ngữ lập trình
Scala, Haskell và Lisp là các ngôn ngữ lập trình chức năng. C, C ++, Java là các ngôn ngữ lập trình bắt buộc.
 Tiêu điểm
Lập trình hàm tập trung vào kết quả cuối cùng. Lập trình mệnh lệnh tập trung vào việc mô tả cách thức một chương trình hoạt động.
Sự đơn giản
Lập trình chức năng là khó. Lập trình cấp bách dễ dàng hơn.

Tóm tắt - Chức năng Lập trình so với lập trình mệnh lệnh

Một mô hình lập trình cung cấp một phong cách xây dựng cấu trúc và các yếu tố của một chương trình máy tính. Lập trình chức năng và Lập trình mệnh lệnh là hai trong số đó. Sự khác biệt giữa lập trình hàm và lập trình mệnh lệnh là lập trình hàm coi các phép tính là các hàm toán học và tránh thay đổi trạng thái và dữ liệu có thể thay đổi trong khi lập trình mệnh lệnh sử dụng các câu lệnh thay đổi trạng thái chương trình.

Tài liệu tham khảo:

1. Lập trình mệnh lệnh. Wikipedia, Wikimedia Foundation, 28 tháng 3 năm 2018. Có sẵn tại đây  
2. Lập trình chức năng. Wikipedia, Wikimedia Foundation, 28 tháng 3 năm 2018. Có sẵn tại đây  
3. Máy tính. YouTube, YouTube, ngày 30 tháng 8 năm 2013. Có sẵn tại đây 

Hình ảnh lịch sự:

1.'Haskell Logo'By Haskell1965 - Công việc riêng, (CC BY-SA 3.0) qua Commons Wikimedia 
2.'14485179234'by Ảnh chụp màn hình Linux (CC BY 2.0) qua Flickr