สรุปภาษาโปรแกรมเบื้องต้น
การวิวัฒนาการของภาษาโปรแกรม
ภาษาสนทนาสำหรับคอมพิวเตอร์คือชุดของคำที่กำหนดไว้ล่วงหน้าซึ่งรวมกันเป็นโปรแกรมตามกฎที่กำหนดไว้ล่วงหน้า (ไวยากรณ์) ภาษาโปรแกรมได้พัฒนาจากภาษาระดับเครื่องไปสู่ภาษาระดับสูง
ภาษาเครื่อง (Machine Language)
เป็นภาษาโปรแกรมเดียวที่มีอยู่ในยุคแรกๆ ของคอมพิวเตอร์ แต่ละคอมพิวเตอร์มีภาษาเครื่องของตัวเองซึ่งประกอบด้วยกลุ่มของเลข และ ภาษานี้เป็นภาษาเดียวที่คอมพิวเตอร์เข้าใจ
ภาษาแอสเซมบลี (Assembly Language)
วิวัฒนาการถัดมาคือการแทนที่รหัสไบนารีสำหรับคำสั่งและที่อยู่ด้วยสัญลักษณ์หรือตัวย่อ (mnemonics) ภาษากลุ่มนี้จึงถูกเรียกว่าภาษาแอสเซมบลี ตัวอย่างเช่น เพื่อเพิ่มจำนวนสองจำนวน จะมีการใช้คำสั่งที่เป็นสัญลักษณ์แทนรหัสไบนารี เช่น LOAD RF หรือ STORE Number1 RF ซึ่งเทียบเท่ากับรหัสเลขฐานสิบหกเช่น หรือ .
ภาษาระดับสูง (High-level Languages)
เพื่อให้มีประสิทธิภาพในการเขียนโปรแกรมมากขึ้นและเปลี่ยนจุดเน้นจากการทำงานของคอมพิวเตอร์ไปสู่ปัญหาที่กำลังแก้ไข ภาษาระดับสูงจึงถูกพัฒนาขึ้น ภาษาเหล่านี้รวมถึง BASIC, COBOL, Pascal, Ada, C, C++ และ Java โปรแกรมที่เขียนด้วยภาษาระดับสูงเรียกว่า source program และโปรแกรมที่ถูกแปลเป็นภาษาเครื่องเรียกว่า object program
การแปลภาษา (Translation)
มีสองวิธีหลักในการแปลภาษาโปรแกรม:
- Compilation: คอมไพลเลอร์จะแปล
source programทั้งหมดให้เป็นobject programก่อนที่จะทำการรัน - Interpretation: การแปลจะทำทีละบรรทัด โดยแปลและรัน
source programทีละบรรทัด
รูปแบบการเขียนโปรแกรม (Programming Paradigms)
รูปแบบเชิงกระบวนการ (Procedural Paradigm)
ในรูปแบบนี้ โปรแกรมถูกมองว่าเป็น active agent ที่จัดการ passive objects (ข้อมูลหรือ data items) โปรแกรมจะออกคำสั่งที่เรียกว่า procedure เพื่อจัดการข้อมูล ตัวอย่างภาษา: FORTRAN, COBOL, RPG, Pascal, C, Ada
รูปแบบเชิงวัตถุ (Object-oriented Paradigm)
รูปแบบนี้ทำงานกับ active objects ซึ่งมีทั้งข้อมูล (attributes) และการกระทำ (methods) ที่อยู่ในตัววัตถุนั้นๆ โปรแกรมเพียงแค่ส่งคำขอที่เหมาะสมไปยังวัตถุ
- Class: ใช้สร้างชุดของ
methodsที่แสดงว่าวัตถุประเภทนี้ตอบสนองต่อสิ่งเร้าภายนอกอย่างไร - Encapsulation: การรวมข้อมูลและ
methodsเข้าไว้ในclassเดียวกัน - Inheritance: วัตถุสามารถสืบทอดคุณสมบัติจากวัตถุอื่นได้ ทำให้สามารถกำหนด
classที่มีความเฉพาะเจาะจงมากขึ้นโดยสืบทอดลักษณะบางอย่างจากclassทั่วไปและเพิ่มลักษณะใหม่ได้ - Polymorphism: ความสามารถในการกำหนดการทำงานหลายอย่างที่มีชื่อเดียวกันแต่สามารถทำงานที่แตกต่างกันใน
classesที่เกี่ยวข้องได้
ตัวอย่างภาษา: C++, Java
รูปแบบเชิงฟังก์ชัน (Functional Paradigm)
ในรูปแบบนี้ โปรแกรมถือว่าเป็นฟังก์ชันทางคณิตศาสตร์ ฟังก์ชันเป็นเสมือนกล่องดำที่รับรายการอินพุตและส่งออกรายการเอาต์พุต โปรแกรมสามารถกำหนดฟังก์ชันโดยการรวมฟังก์ชันพื้นฐานเข้าด้วยกันได้
ตัวอย่างภาษา: LISP, Scheme
รูปแบบเชิงประกาศ (Declarative Paradigm)
รูปแบบนี้ใช้หลักการให้เหตุผลเชิงตรรกะเพื่อตอบข้อสงสัย ซึ่งอิงตามตรรกะอย่างเป็นทางการที่กำหนดโดยนักคณิตศาสตร์ชาวกรีก การให้เหตุผลเชิงตรรกะมาจากหลักการนิรนัย ซึ่งข้อความจริง (facts) ที่กำหนดไว้จะถูกใช้เพื่อนิรนัยข้อความจริงใหม่โดยใช้กฎการให้เหตุผลเชิงตรรกะ
ตัวอย่าง: ถ้า (A คือ B) และ (B คือ C) ดังนั้น (A คือ C)
ตัวอย่างภาษา: Prolog
ภาษาเฉพาะทาง (Domain Specific Languages - DSLs)
เป็นภาษาคอมพิวเตอร์ที่เชี่ยวชาญสำหรับโดเมนแอปพลิเคชันเฉพาะ ต่างจากภาษาทั่วไปที่สามารถใช้งานได้หลากหลายโดเมน
ตัวอย่าง: HTML (สำหรับหน้าเว็บ), Perl (สำหรับการประมวลผลข้อความ), SQL (สำหรับการเข้าถึงและจัดการฐานข้อมูลเชิงสัมพันธ์)
ภาษาโปรแกรม Python
Python ได้รับการออกแบบโดย Guido van Rossum เป็นภาษาระดับสูงแบบ general-purpose ที่เน้นความอ่านง่ายของโค้ด ใช้การเยื้องด้วยช่องว่างเพื่อกำหนดบล็อกของโค้ด และมีไวยากรณ์ที่ช่วยให้โปรแกรมเมอร์สามารถแสดงแนวคิดด้วยโค้ดจำนวนบรรทัดน้อยลง Python เป็นภาษาแบบ interpreted รองรับระบบ dynamic type และการจัดการหน่วยความจำอัตโนมัติ รองรับรูปแบบการเขียนโปรแกรมหลายรูปแบบ เช่น Imperative, OOP, Functional programming และมี standard library ที่ใหญ่และครอบคลุม