คอมไพเลอร์เป็นโปรแกรมที่อ่านโปรแกรมที่เขียนในภาษาหนึ่ง (ภาษาต้นฉบับ) และแปลเป็นโปรแกรมอื่นที่เทียบเท่าในภาษาอื่น (ภาษาเป้าหมาย) ซึ่งส่วนใหญ่เป็นภาษาเครื่อง
คอมไพเลอร์มีเฟสที่แตกต่างกันซึ่งรหัสภาษาต้นฉบับของคุณจะถูกสแกนทีละบรรทัด มีตารางสัญลักษณ์ที่คอยติดตามคำค้นหาทั้งหมดที่ถูกสแกนในรหัสภาษาต้นฉบับ
ขั้นตอนที่ 1: ตัววิเคราะห์คำศัพท์ - อ่านอักขระทั้งหมดในซอร์สโปรแกรมและสร้างการแยกโลจิคัลของโทเค็น (int, char, float, if-else, for, while ฯลฯ )
ขั้นตอนที่ 2: การวิเคราะห์ไวยากรณ์ - วิเคราะห์โครงสร้างของกระแสโทเค็น การแยกวิเคราะห์ลำดับชั้นของการแสดงออกซึ่งรวมถึง postfix / prefix ฯลฯ (a = b + c * d)
ขั้นตอนที่ 3: การวิเคราะห์เชิงความหมาย - การตรวจสอบประเภทของโทเค็น (จำนวนเต็มจริงลอย ฯลฯ ) และสิ่งต่าง ๆ เช่นลำดับความสำคัญของผู้ประกอบการ ฯลฯ
ขั้นตอนที่ 4: ตัวสร้างโค้ดระดับกลาง - a = b + c * de (temp1 = c * d, temp2 = temp1 + b, temp3 = temp2-e)
ขั้นตอนที่ 5: การปรับรหัสให้เหมาะสม - การวิเคราะห์ที่หลากหลาย (การควบคุมการไหลการไหลของข้อมูลการแปลง)
ซึ่งส่งผลให้เกิดรหัสซ้ำซ้อนรหัสค่าคงที่ค่าคงตัวรหัสตายบางส่วน
ขั้นตอนที่ 6: การสร้างรหัส - การสร้างรหัสเป้าหมาย (ภาษาแอสเซมบลีภาษาส่วนใหญ่) นำค่าในการลงทะเบียน
ทุกขั้นตอนเหล่านี้ไม่มีอะไรนอกจากโปรแกรมที่เขียนได้ดีและอาจมีข้อบกพร่องจำนวน N ใน ..