ในโพสต์นี้ เราจะทำความเข้าใจความแตกต่างระหว่าง procedural และ non-procedural languages -
Procedural language
- โค้ดเขียนเป็น sequence of instructions
- ผู้ใช้ระบุ ما to do และ how to do แบบขั้นตอน
- Command-driven language
- ทำงานกับ state of machine
- Semantics ยากกว่า paradigms อื่น
- ขนาดโปรแกรมใหญ่
- Execute แบบ sequential
- Return restricted data types และค่าที่อนุญาตเท่านั้น
- Overall efficiency สูง
- Instructions แก้ปัญหาเฉพาะเจาะจง
- ตัวอย่าง: BASIC, FORTRAN, ALGOL, C, COBOL, Pascal
- ไม่เหมาะสำหรับ time-critical applications
- ใช้ iterative loops และ recursive calls
Non-procedural Language
- ผู้ใช้ระบุ what to do แต่ไม่ระบุ how to do
- รู้จักว่า applicative หรือ functional language
- พัฒนา functions จาก functions อื่นๆ เพื่อสร้าง functionalities ที่ซับซ้อน
- ทำงานด้วย mathematical functions
- Semantics เรียบง่ายกว่า procedural
- ตัวอย่าง: LISP, SQL, PROLOG
- Function-driven language
- Return any datatype หรือ value ได้
- Overall efficiency ต่ำกว่า procedural
- โปรแกรมขนาดเล็ก
- เหมาะสำหรับ time-critical applications
- ใช้ recursive calls