ขั้นตอนการประมวลผลคำสั่งของคอมพิวเตอร์#
Programming Language (ภาษาโปรแกรม)#
Programming Language คือ ภาษาเฉพาะที่มนุษย์สร้างขึ้นเพื่อสื่อสารกับคอมพิวเตอร์
โปรแกรมเมอร์ใช้ภาษาเหล่านี้ในการเขียนโปรแกรมสั่งงานคอมพิวเตอร์
ภาษาโปรแกรมแบ่งได้เป็นหลายประเภท เช่น
Low-level Language (ภาษาเครื่อง หรือ Assembly)
High-level Language (ภาษาโปรแกรมระดับสูง เช่น Python, Java, C++)
WHAT IS PROGRAMMING?
Writing very specific instructions to a very dumb, yet obedient machine.
Fig. 1 Programming Language#
Image from https://carlcheo.com/startcoding
Compiler (ตัวแปลภาษา)#
Compiler คือ โปรแกรมที่ทำหน้าที่แปลโปรแกรมภาษาโปรแกรม (Source Code) ให้เป็นภาษาเครื่อง (Machine Code) ที่คอมพิวเตอร์สามารถเข้าใจและดำเนินการได้
การทำงานของ Compiler มีหลายขั้นตอน เช่น
Lexical Analysis: ตรวจสอบคำหรือสัญลักษณ์ในโค้ด
Syntax Analysis: ตรวจสอบโครงสร้างประโยคตามไวยากรณ์ของภาษา
Code Generation: สร้างโค้ดภาษาเครื่อง
Fig. 2 Compiler#
Image from https://www.tamemo.com/post/141/?ref=content
Interpreter (ตัวแปลภาษา)#
Interpreter คือ โปรแกรมที่ทำหน้าที่แปลและรันโปรแกรมภาษาโปรแกรมทีละบรรทัดทันทีที่อ่านโค้ด
การทำงานของ Interpreter แตกต่างจาก Compiler ตรงที่มันไม่แปลโค้ดทั้งหมดก่อนแล้วจึงรัน แต่แปลและรันโค้ดทีละบรรทัด
ข้อดีของ Interpreter คือสามารถตรวจสอบและแก้ไขข้อผิดพลาดได้ทันที
ตัวอย่างขั้นตอนการทำงานของ Interpreter:
Lexical Analysis: ตรวจสอบคำหรือสัญลักษณ์ในแต่ละบรรทัดโค้ด
Syntax Analysis: ตรวจสอบโครงสร้างไวยากรณ์เฉพาะบรรทัดนั้น
Immediate Execution: รันคำสั่งทีละบรรทัด
Fig. 3 Compiler#
Image from https://www.tamemo.com/post/141/?ref=content
Compiler vs Interpreter#
Compiler:#
แปลโค้ดทั้งหมดก่อนดำเนินการ (Compile ครั้งเดียว)
ผลลัพธ์เป็นไฟล์ภาษาเครื่อง (machine code file)
ใช้เวลานานในขั้นตอนการ Compile แต่การทำงานเร็ว
Interpreter:#
แปลโค้ดทีละบรรทัด และดำเนินการในทันที
ไม่สร้างไฟล์ภาษาเครื่อง
การแปลและการทำงานช้ากว่า Compiler แต่ปรับแก้โค้ดได้ง่ายกว่า
ข้อแตกต่างระหว่าง Compiler และ Interpreter#
Feature |
Compiler |
Interpreter |
|---|---|---|
การทำงาน |
แปลโค้ดทั้งหมด |
แปลทีละบรรทัด |
ผลลัพธ์ |
ไฟล์ภาษาเครื่อง |
ไม่มีไฟล์ภาษาเครื่อง |
ความเร็วการประมวลผล |
เร็วหลังจากการ Compile เสร็จ |
ช้ากว่าเนื่องจากแปลทีละบรรทัด |
การแก้ไขข้อผิดพลาด |
แก้ไขยาก ต้อง Compile ใหม่ |
แก้ไขง่าย รันได้ทันที |
ตัวอย่างภาษา Compiler และ Interpreter#
Compiler: C, C++, Java
Interpreter: Python, Ruby, JavaScript