Blog About
Table of Contents
  • เนื้อหา
  • ตัวแปลภาษา
  • Compiler กับ Interpreter
  • Compiler
  • Interpreter
  • สรุป
  • อ่านเพิ่มเติมที่

ตัวแปลภาษา Compiler และ Interpreter

Apisit N.
17 Jul 2022

ในการเขียนโปรแกรมให้คอมพิวเตอร์ทำงาน ตัวโปรแกรมที่เราเขียนโดยภาษาต่างๆไม่ว่าจะเป็น c, java, javascript, php ภาษาเหล่านี้เรียกว่าได้ว่า ภาษาโปรแกรม Programming Language แต่ละภาษาก็มีจุดเด่นของตัวเอง หรือบางภาษาก็เป็นต้นแบบให้สร้างภาษาใหม่ขึ้นมาเพื่อให้เขียนง่ายกว่าเดิม

เนื้อหา

  • เนื้อหา
  • ตัวแปลภาษา
  • Compiler กับ Interpreter
    • Compiler
    • Interpreter
  • สรุป
  • อ่านเพิ่มเติมที่

ตัวแปลภาษา

c, c#, java, javascript, php, python คือภาษาที่มนุษย์สามารถอ่านออก เข้าใจได้ในทางคอมพิวเตอร์จะเรีนกว่าภาษาระดับสูง ซึ่งคอมพิวเตอร์จะอ่านเข้าใจได้คือภาษาระดับต่ำหรือภาษาเครื่องเท่านั้น

1
int x = 1;
2
int y = 2;
3
int ans = x + y;
4
System.out.println(ans);

จากตัวอย่าง โค้ด ดังกล่าวเราอาจเรายังสามารถอ่านแล้วเข้าใจได้ แต่จริงๆคอมพิวเตอร์ยังไม่สามารถ run โค้ดหรือคำสั่งชุดนี้ได้ ก็คือเราเป็นมนุษย์เราอยากเขียนโปรแกรมด้วยภาษาที่เราสามารถเข้าใจได้ง่าย แต่คอมพิวเตอร์ยังอ่านไม่ออกเพราะคอมพิวเตอร์ไม่เข้าใจภาษามนุษย์ไง

สิ่งที่จะมาทำหน้าที่แปลภาษาโปรแกรมที่เราเขียนแล้วทำให้คอมพิวเตอร์เข้าใจก็ก็คือ Compiler จะทำการอ่านโค้ดที่เป็นภาษาโปรแกรมระดับสูงที่เราเขียน แล้วแปลงมันเป็น Machine Code หรือก็คือ Binary

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

ไฟล์งานที่เราเขียนโค้ดกันจะเรียกว่า Source Code

Source Code -> Compiler(Binary) -> Execution File -> Computer

  • Source Code คือสิ่งที่เราเขียนขึ้นมา อาจจะเขียนด้วยภาษา java, c, c++ เป็นต้น
  • Compiler ใช้แปล Source Code ให้เป็นไฟล์ที่คอมพิวเตอร์สามารถอ่านได้ในรูปแบบ Binary
  • Execution File ก็คือไฟล์ Binary ที่ได้จากการ Compile นั้นแหละ

Compiler กับ Interpreter

คอมไพเลอร์ กับ อินเทอพรีเตอร์ สองตัวนี้ทำหน้าที่เหมือนกันคือแปลภาษาหรือแปล Source Code ที่เราเขียนให้คอมพิวเตอร์สามารถอ่านได้ แต่ลักษณะการแปลงไม่เหมือนกัน

Compiler

Compiler -> Compile Source Code -> .exe -> execute .exe -> Computer run

ในการใช้งาน Compiler จะต้องเขียนโปรแกรมให้เสร็จก่อนแล้วจึงสั่งให้ Compiler ทำการ Compile ตัว Source Code ให้ออกมาเป็น Execution File

ภาษาที่ใช้ตัว Compiler เป็นตัวแปลภาษา เช่น C, C++, C#, Java, Go, Swift

ข้อดีคือ Compiler ในแต่ละภาษาช่วยบอก error ให้เราได้ก่อนจะนำไปให้คอมพิวเตอร์ run จริงๆ ก็คือถ้าเราเขียนอะไรผิด Compiler จะแจ้งเราและ Compile ไม่ผ่านนั่นแหละ

ในบางภาษาสามารถเรียกใช้ funcition ได้ทั้งๆที่บรรทัดก่อนหน้ายังไม่ได้ทำการประกาศ function นั้นๆเอาไว้

Interpreter

Interpreter -> Interpret and Execute Source Code and Run

Interpreter ทำการอ่าน Source Code แล้วแปลคำสั่งเหมือนคอมไพเลอร์ จะอ่านและแปลทีละบรรทัดแล้วแปลงเป็น Machine Code แล้วก็ทำการ Execute ทันที พอทำแบบนี้เสร็จบรรทัดนึงก็ขยับไปทำอีกบรรทัดนึงไปเรื่อยๆ

ก็คือถ้าภาษาไหนที่ใช้ Interpreter เป็นตัวแปลภาษาก็จะไม่ได้ตัว Execution File เพราะมันทำการ run ทันทีที่แปลเสร็จ

ภาษาที่ใช้ตัว Interpreter เป็นตัวแปลภาษาส่วนใหญ่จะเป็นภาษาใหม่ๆ เช่น Python, JavaScript, PHP

ในภาษาที่ใช้ Interpreter จะเรียกใช้ funcition ก่อนแล้วค่อยไปกำหนดทีบรรทัดล่างๆไม่ได้

สรุป

  • Compiler จะทำการอ่านแล้ว Compile พร้อมกันทั้งไฟล์ เมื่อ Compile เสร็จจะได้ไฟล์ Execution File เพื่อให้ Computer ใช้ run
  • Interpreter จะอ่านไฟล์ทีละบรรทัดแล้ว excute ทีละบรรทัดไปเรื่อยๆจนจบโปรแกรม หมายความว่าจะไม่ได้ Execution File

อ่านเพิ่มเติมที่

  • คอมไพเลอร์
  • อินเทอร์พรีเตอร์
  • What is the difference between Compiler and Interpreter?
© 2025 Apisit N.