สรุปภาษาโปรแกรมเบื้องต้น

การวิวัฒนาการของภาษาโปรแกรม

ภาษาสนทนาสำหรับคอมพิวเตอร์คือชุดของคำที่กำหนดไว้ล่วงหน้าซึ่งรวมกันเป็นโปรแกรมตามกฎที่กำหนดไว้ล่วงหน้า (ไวยากรณ์) ภาษาโปรแกรมได้พัฒนาจากภาษาระดับเครื่องไปสู่ภาษาระดับสูง

ภาษาเครื่อง (Machine Language)

เป็นภาษาโปรแกรมเดียวที่มีอยู่ในยุคแรกๆ ของคอมพิวเตอร์ แต่ละคอมพิวเตอร์มีภาษาเครื่องของตัวเองซึ่งประกอบด้วยกลุ่มของเลข 00 และ 11 ภาษานี้เป็นภาษาเดียวที่คอมพิวเตอร์เข้าใจ

ภาษาแอสเซมบลี (Assembly Language)

วิวัฒนาการถัดมาคือการแทนที่รหัสไบนารีสำหรับคำสั่งและที่อยู่ด้วยสัญลักษณ์หรือตัวย่อ (mnemonics) ภาษากลุ่มนี้จึงถูกเรียกว่าภาษาแอสเซมบลี ตัวอย่างเช่น เพื่อเพิ่มจำนวนสองจำนวน จะมีการใช้คำสั่งที่เป็นสัญลักษณ์แทนรหัสไบนารี เช่น LOAD RF หรือ STORE Number1 RF ซึ่งเทียบเท่ากับรหัสเลขฐานสิบหกเช่น (1FEF)<em>16(1FEF)<em>{16} หรือ (240F)</em>16(240F)</em>{16}.

ภาษาระดับสูง (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 ที่ใหญ่และครอบคลุม