วันพฤหัสบดี, 25 เมษายน 2567

ความแตกต่าง ของ คอมไพเลอร์ และ อินเตอร์พรีเตอร์ EP.3

คอมไพเลอร์ และอินเตอร์พรีเตอร์ แตกต่างกันอย่างไร?

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

สำหรับการแปลภาษาด้วยตัวแปรภาษาจะมี 2 ลักษณะคือ การแปลโปรแกรมทั้งหมดในครั้งเดียวเรียกว่า “คอมไพเลอร์ (Compiler)” และแปลทีละบรรทัดขณะทำงานเรียกว่า “อินเตอร์พรีเตอร์ (Interpreter)”

ตัวแปลภาษาชนิดคอมไพเลอร์

สำหรับภาษาคอมพิวเตอร์ที่ใช้วิธีแปลภาษาแบบคอมไพเลอร์ (Compiler) เช่น ภาษาซี / ซีพลัสพลัส / ซีชาร์ป (C#), วิชวลเบสิก (Visual Basic) และ สวิฟท์ (Swift) ฯลฯ เป็นต้น โดย ข้อดี สามารถแจ้งเตือนข้อผิดพลาดที่ซ่อนอยู่ในโปรแกรมระดับหนึ่ง ซึ่งช่วยลดความผิดพลาดเมื่อนำโปรแกรมไปทำงาน และโปรแกรมจะทำงานได้เร็วกว่าแบบอินเตอร์พรีเตอร์หลายเท่าตัว ส่วน ข้อเสีย ภาษาที่ใช้คอมไพเลอร์ส่วนใหญ่จะมีข้อกำหนดทางภาษามาก ทำให้เรียนรู้ได้ช้ากว่าภาษาในกลุ่มอินเตอร์พรีเตอร์

ขั้นตอนการทำงานของ คอมไพเลอร์ Compiler

  1. โปรแกรมเมอร์เขียนโปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่งเรียกว่า “ซอร์สโคด” (Source Code)
  2. จากนั้นโปรแกรมเมอร์จะแปลซอร์สโคดดังกล่าวด้วยคอมไพเลอร์ ถ้าโปรแกรมดังกล่วเรียกใช้ไลบรารี่ (Library) คอมไพเลอร์ก็จะนำเอาไลบรารี่ดังกล่าวมาแปลร่วมกับซอร์สโคดด้วย
  3. หลังจากคอมไพล์และไม่มีข้อผิดพลาดใดๆเกิดขึ้น จะได้แฟ้มที่มีชื่อว่า เอ็กซิคิวเทเบิล (Executable File) ที่มีนาวสกุลเป็น .exe หรือ .com (หรือ .out ในลีนุกซ์)
  4. ไฟล์ดังกล่าวจะประกอบไปด้วยรหัสเลขฐานสองเท่านั้นเรียกว่า “รหัสเครื่อง” (Machine Code)
  5. ไฟล์ดังกล่าว (โปรแกรม) พร้อมที่จะทำงานได้ทันที

ตัวแปลภาษาชนิดอินเตอร์พรีเตอร์

อินเตอร์พรีเตอร์ (interpreter) ตัวแปลภาษาชนิดนี้จะแปลที่ละบรรทัดๆ ในขณะทำงานซึ่งแตกต่างจากคอมไพเลอร์ที่ต้องแปลความหมายทั้งหมดเพียงครั้งเดียว ภาษาที่ใช้แนวคิดแบบอินเตอร์พรีเตอร์บางครั้งเรียกว่าภาษาสคริปต์ (Script) ตัวอย่างเช่น ภาษาไพธอน (Python), ภาษาจาวาสคริปต์ (Java Script) และพีเอชพี (PHP) เป็นต้น สำหับข้อดีของภาษาที่เลือกใช้การแปลภาษาแบบอินเตอร์พรีเตอร์คือ รูปแบบของภาษาสามารถเรียนรู้และทำความเข้าใจได้ง่าย เหมาะสำหรับมือใหม่ที่เพิ่งเริ่มการเขียนโปรแกรม สามารถทำงานข้ามระบบปฏิบัติการ (OS) ได้โดยเกิดปัญหาน้อยมาก ส่วนข้อเสียที่สำคัญคือ ตัวแปลภาษาชนิดอินเตอร์พรีเตอร์ส่วนมาก จะไม่สามารถตรวจสอบความผิดพลาดของโปรแกรมได้ดีเท่ากับการแปลด้วยวิธรแบบคอมไพเลอร์ ส่งผลให้ขณะที่โปรแกรมกำลังทำงานอาจจะมีโอกาสเกิดความผิดพลาด (Error) มากกว่านั่นเอง

ขั้นตอนการทำงานของ อินเตอร์พรีเตอร์ Interpreter

  1. โปรแกรมเมอร์เขียนโปรแกรม เรียกว่า “ซอร์สโคด”
  2. จากนั้นซอร์สโคดดังกล่าวถูกแปลภาษา (Interpreter) ด้วยอินเตอร์พรีเตอร์ โดยแปลชอร์สโคดทีละบรรทัด ถ้าโปรแกรมดังกล่าวเรียกใช้งานไลบรารี่ ก็จะถูกแปลร่วมในขั้นตอนนี้
  3. จากนั้นซอร์สโคดแต่ละบรรทัดจะถูกแปลงเป็นรหัสเครื่อง (Machine Code)
  4. และรหัสดังกล่าวจะสั่งให้คอมพิวเตอร์ทำงานตามที่โปรแกรมเมอร์ต้องการ
  5. การทำงานจะทำซ้ำในระหว่างขั้นตอนที่ 2 ถึง 4 ไปเรื่อยๆจนกว่าคำสั่งในโปรแกรมจะหมด

ความแตกต่าง ของ คอมไพเลอร์ (#Compiler) และ อินเตอร์พรีเตอร์ (#Interpreter) #ปูพื้นฐานก่อนเขียนโปรแกรม EP.3 | #AkaraCourses