Hiểu sự khác biệt giữa procedural và non-procedural languages.
Procedural language
- Mã chương trình viết thành chuỗi lệnh tuần tự.
- Người dùng chỉ định làm gì và làm như thế nào (bước بخطوات).
- Command-driven language.
- Làm việc với trạng thái máy.
- Semantics phức tạp hơn các paradigm khác.
- Kích thước chương trình lớn.
- Thực thi tuần tự.
- Trả về kiểu dữ liệu hạn chế, giá trị cho phép nhất định.
- Hiệu quả tổng thể cao.
- Viết lệnh giải quyết bài toán cụ thể.
- Ví dụ: BASIC, FORTRAN, ALGOL, C, COBOL, Pascal.
- Không phù hợp ứng dụng thời gian thực critical.
- Dùng vòng lặp lặp và đệ quy.
Non-procedural Language
- Người dùng chỉ định làm gì nhưng không đi vào làm như thế nào.
- Applicative/functional language.
- Phát triển function dựa trên function khác để xây dựng chức năng phức tạp.
- Làm việc với hàm toán học.
- Semantics đơn giản hơn procedural.
- Ví dụ: LISP, SQL, PROLOG.
- Function-driven language.
- Có thể trả về bất kỳ datatype/giá trị nào.
- Hiệu quả tổng thể thấp hơn procedural.
- Chương trình nhỏ gọn.
- Phù hợp ứng dụng time-critical.
- Dùng đệ quy.