Skip to content

Execution Process

  • เป็นขั้นตอนการทำงานของโปรแกรมขณะรันโค้ด ซึ่งรวมถึงการตีความและการประมวลผลคำสั่ง
  • Execution Process ครอบคลุมตั้งแต่การแปลโค้ด (Interpretation) หรือการคอมไพล์ (Compilation) ไปจนถึงการรันโค้ดจริง
ขั้นตอนการทำงานCompile Time (เวลาแปล) 🕒Runtime (เวลารัน) 🚀Just-In-Time (JIT) Compilation (การแปลแบบทันที) ⚡Ahead-Of-Time (AOT) Compilation (การแปลล่วงหน้า) ⏳
คำอธิบายแปลโค้ดจากภาษาต้นฉบับเป็นโค้ดระดับต่ำก่อนรัน เพื่อตรวจสอบข้อผิดพลาดช่วงที่โปรแกรมถูกใช้งานจริง จัดการกับฟังก์ชันและหน่วยความจำแปลโค้ดเฉพาะส่วนที่จำเป็นขณะรัน ทำให้ประสิทธิภาพดีขึ้นแปลโค้ดทั้งหมดล่วงหน้าก่อนรันจริง ทำให้โค้ดพร้อมรันได้ทันที
ความเร็วทำให้โหลดเร็วขึ้นเมื่อเข้าสู่การรัน แต่มีเวลารอคอมไพล์ขึ้นกับวิธีการจัดการโค้ดและการเรียกใช้ทรัพยากรในขณะรันเร็วกว่า Runtime เพราะแปลแบบเรียลไทม์เฉพาะส่วนเร็วมาก เพราะไม่ต้องแปลซ้ำอีกในเวลารัน
การจัดการข้อผิดพลาดตรวจสอบข้อผิดพลาดก่อนรันได้ง่าย ทำให้โค้ดมีความเสถียรมากขึ้นตรวจสอบข้อผิดพลาดในขณะรัน ซึ่งอาจเกิดข้อผิดพลาดที่ไม่เจอในช่วง Compile Timeตรวจสอบบางส่วนขณะรัน เพิ่มความเร็ว แต่ยังมีข้อผิดพลาดได้ในบางส่วนของโค้ดตรวจสอบข้อผิดพลาดล่วงหน้า ทำให้มีความเสถียรสูงในเวลารันจริง
ความยืดหยุ่นในการเปลี่ยนแปลงโค้ดทำให้การแก้ไขหรืออัปเดตโค้ดใช้เวลามากขึ้น เพราะต้องคอมไพล์ใหม่ง่ายต่อการปรับแก้ไขและทดสอบ เพราะโค้ดทำงานได้ทันทียืดหยุ่น สามารถแปลโค้ดตามการใช้งานจริง ทำให้เหมาะสำหรับโค้ดที่ปรับเปลี่ยนบ่อยยืดหยุ่นน้อยกว่า เพราะแปลทั้งหมดล่วงหน้า แต่ได้ประสิทธิภาพและความเร็วในระยะยาว

Syntax (ไวยากรณ์)

  • เป็นกฎเกณฑ์ที่กำหนดรูปแบบการเขียนโค้ด เช่น โครงสร้างของคำสั่ง, ตัวแปร, ฟังก์ชัน, เครื่องหมายต่าง ๆ และคำสำคัญในภาษา เช่น if, else, {}, ;
  • Syntax กำหนดให้โปรแกรมมีโครงสร้างที่แน่นอน ช่วยให้โปรแกรมอ่านเข้าใจง่ายและลดข้อผิดพลาด

Semantics (ความหมาย)

  • กำหนดความหมายที่โค้ดจะต้องทำงานตามที่ระบุ เช่น คำสั่ง a = b + c; หมายถึงการบวกค่าของ b และ c แล้วเก็บใน a
  • Semantics บอกว่าคำสั่งแต่ละอย่างควรทำงานอย่างไร ซึ่งสามารถแบ่งได้เป็น Static Semantics (เช่น ประเภทของตัวแปรที่ต้องตรงกัน) และ Dynamic Semantics (เช่น การจัดการค่าข้อมูลขณะโปรแกรมรัน)

Pragmatics (แนวทางการใช้งาน)

  • เป็นแนวทางการใช้ภาษาอย่างเหมาะสม เพื่อให้โปรแกรมมีประสิทธิภาพและอ่านง่าย เช่น การจัดรูปแบบโค้ด, การตั้งชื่อตัวแปรให้สื่อความหมาย
  • Pragmatics ยังรวมไปถึง Best Practices ที่นักพัฒนาแนะนำเพื่อหลีกเลี่ยงข้อผิดพลาด

Data Types (ประเภทข้อมูล)

  • ภาษาโปรแกรมต้องกำหนดประเภทของข้อมูล เช่น จำนวนเต็ม (int), ข้อความ (string), ตัวอักษร (char) หรือแบบไม่มีข้อมูล (null, undefined)
  • Data Types มีความสำคัญเพราะส่งผลต่อการจัดการและการเก็บข้อมูลในหน่วยความจำ

Control Structures (โครงสร้างควบคุม)

  • ประกอบด้วยคำสั่งในการควบคุมการไหลของโปรแกรม เช่น คำสั่งเงื่อนไข (if, switch), คำสั่งวนซ้ำ (for, while), และคำสั่งหยุด (break, continue)
  • เป็นเครื่องมือช่วยให้โปรแกรมทำงานอย่างซับซ้อนได้โดยการควบคุมลำดับการทำงาน

Memory Management (การจัดการหน่วยความจำ)

  • การจัดการพื้นที่หน่วยความจำ เช่น การจัดสรรหน่วยความจำ, การจัดเก็บตัวแปร, และการเก็บขยะ (Garbage Collection)
  • การจัดการหน่วยความจำมีความสำคัญเพื่อให้โปรแกรมทำงานได้มีประสิทธิภาพและไม่ใช้หน่วยความจำเกินความจำเป็น

Libraries and APIs (ไลบรารีและ API)

  • ไลบรารีและ API เป็นส่วนขยายที่ทำให้ภาษาโปรแกรมสามารถเข้าถึงฟังก์ชันและความสามารถเพิ่มเติมได้ เช่น ฟังก์ชันคณิตศาสตร์, การจัดการไฟล์, และการสื่อสารกับเครือข่าย
  • API ช่วยให้โปรแกรมสามารถทำงานร่วมกับบริการภายนอกหรือไลบรารีของระบบได้

Error Handling (การจัดการข้อผิดพลาด)

  • ข้อกำหนดและกลไกในการจัดการข้อผิดพลาด เช่น การตรวจจับข้อผิดพลาด (try-catch) และการจัดการข้อผิดพลาดในลักษณะต่าง ๆ
  • Error Handling ช่วยให้โปรแกรมสามารถทำงานต่อไปได้แม้เกิดข้อผิดพลาด โดยการควบคุมและจัดการสถานการณ์

Concurrency (การทำงานแบบขนาน)

  • การจัดการให้โปรแกรมสามารถทำงานหลายอย่างในเวลาเดียวกัน เช่น Threads, Asynchronous Programming, Parallelism
  • Concurrency มีความสำคัญในระบบที่ต้องการประสิทธิภาพสูง เช่น การประมวลผลข้อมูลขนาดใหญ่ หรือแอปพลิเคชันเรียลไทม์