การเขียนโปรแกรมเชิงโครงสร้าง
การเขียนโปรแกรมเชิงโครงสร้างเป็นการเขียนโปรแกรมโดยยึดหลักการเขียนโปรแกรมแบบแยกเป็นหน่วยย่อย (Module) ตามหน้าที่แล้วรวบรวมหน่วยย่อยเหล่านั้นเข้าด้วยกันเป็นโครงสร้างสอดคล้องสัมพันธ์กัน เราเรียกชั้นนี้ว่า ขั้นผสมผสาน (Integration) โครงสร้างที่ได้ก็คือโปรแกรมที่ต้องการ
หลักการเขียนโปรแกรมเชิงโครงสร้าง
การเรียงลำดับ (Sequencing) เป็นการประมวลผลการทำงานว่าสมควรจะทำอย่างไรกับลำดับตรรกะที่ได้กำหนดไว้ในคำสั่งของโปรแกรม
การเลือก (Selection) เป็นการเลือกจำนวนของชุดคำสั่งที่ใช้ในการประมวลผลในโปรแกรม โดยชุดคำสั่งเหล่านี้จะมีคำหลักที่ใช้ในการกำหนดลำดับในการประมวลผล เช่น if, then, endif, หรือ switch
การทำซ้ำ (Repetition) โปรแกรมจะประมวลผลชุดคำสั่งไปเรื่อยๆ จนกว่าจะไปถึงจุดที่มีการเปลี่ยนกระบวนการทำงานไปยังชุดคำสั่งอื่น คำหลักที่เกี่ยวข้อง เช่น repeat, for, do...until
ภาษาที่ใช้พัฒนาโปรแกรมในลักษณะนี้ จัดเป็นภาษาประเภทที่เรียกว่า ภาษากระบวนคำสั่ง (Procedural Language) การเขียนโปรแกรมแนวนี้ได้ถูกใช้มานานตั้งแต่ยุคก่อนจนถึงยุงปัจจุบันก็ยังใช้อยู่ โดยเฉพาะโปรแกรมที่มีขนาดเล็ก
การเขียนโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมเชิงวัตถุ ไม่ใช่ทั้งภาษาหรือซอฟต์แวร์แต่เป็นเพียงแบบอย่าง (Paradigm) หรือรูปแบบการเขียนและยังเป็นวิธีคิดอีกด้วย ซึ่งประกอบด้วยหลักการ ดังนี้
Encapsulate หมายถึง การห่อหุ้ม เกิดจากแนวคิดว่าวัตถุ (object) ควรแยกโค้ดส่วนเชื่อมต่อ (Interface) กับโค้ดส่วนประมวลผลและข้อมูล (Process and Data) ออกจากกันข้อมูลและส่วนประมลผลทั้งหมดควรถูกซ่อนไว้เบื้องหลังอินเตอร์เฟส หากจัดให้มีอินเตอร์เฟสที่ดีและรักษาความคงเส้นคงวาของอินเตอร์เฟสไว้ แม้จะมีการเปลี่ยนโค้ดส่วนประมวลผลทั้งหมด โปรแกรมก็ยังสามารถใช้งาน object ได้ทั้งหมด
Inheritance หมายถึง การสืบทอดความสามารถและคุณสมบัติ เป็นการขยายคุณสมบัติของคลาสโดยการคงตัวแม่แบบเอาไว้ คลาสที่สืบทอดออกมาจะมีความสามารถและคุณสมบัติเช่นเดียวกับต้นแบบทุกประการและเราสามารถเพิ่มเติมความสามารถและคุณสมบัติได้
Polymorphism หมายถึง การพ้องรูป เป็นแนวคิดที่จะทำให้วัตถุที่สร้างขึ้นมาใหม่สามารถจะใช้การทำงานของวัตถุที่เป็นต้นแบบได้ ดังจะเห็นว่า แม้ว่าคนกับม้าจะวิ่งไม่เหมือนกันแต่ก็สามารถจะทำงานด้วยคำสั่งชื่อเดียวกันได้ คือ วิ่ง แล้วจะวิ่งยังไงและให้ผลยังไงก็แล้วแต่
การเขียนโปรแกรมแบบฟังก์ชัน
การเขียนโปรแกรมแบบฟังก์ชันเป็นการเขียนโปรแกรมรูปแบบหนึ่งที่ใช้ในการประมวลผลฟังค์ชันทางคณิตศาสตร์โดยจะเน้นประยุกต์การใช้งานฟังก์ชัน การเขียนโปรแกรมแบบฟังก์ชันมีรากฐานมาจากแลมบ์ดาแคลคูลัส (lambda calculus) ซึ่งมีแนวคิดดังนี้
First-class functions คือ ฟังก์ชันที่มีลักษณะเหมือนตัวแปรในภาษาอื่น คือ สามารถเปลี่ยนแปลงการทำงานของฟังก์ชันได้โดยใช้ชื่อเดิม
Higher-order functions คือ ฟังก์ชันที่มีความสามารถเหมือนตัวแปรแล้ว มันจึงส่ง อาร์กิวเมนต์ (Argument) เข้าไปในฟังก์ชันอื่น หรือ คืนค่า (return) จากฟังก์ชันอื่นได้ โดยถ้ามันรับจากฟังก์ชันอื่นซ้อนๆ กันหรือคืนค่าจากฟังก์ชันอื่นซ้อนๆ กัน ลำดับของมันก็สูงขึ้นตามจำนวนที่ซ้อนเรียกลงไป
Recursion การทำซ้ำต่างๆ ในรูปแบบการเขียนโปรแกรมจะใช้รูปแบบการวนซ้ำ เช่น for, while แต่เนื่องจากตัวแปรไม่สามารถเปลี่ยนแปลงได้ การวนซ้ำแบบนั้นจึงทำไม่ได้ การทำซ้ำต่างๆ ในการเขียนโปรแกรมแบบฟังก์ชันจึงอยู่ในรูปแบบเรียกตัวเองซ้ำ
Non-strict evaluation คือ การทำงานกับข้อมูลที่ต้องใช้เท่านั้น