คอมไพเลอร์คืออะไร
คอมไพเลอร์คือโปรแกรมคอมพิวเตอร์ที่ใช้แปลภาษาการเขียนโปรแกรมระดับสูง เช่น C ให้เป็นภาษาแอสเซมบลีหรือรหัสเครื่อง จุดประสงค์หลักคือการแปลงโค้ดที่อ่านได้โดยมนุษย์ให้เป็นรูปแบบที่สามารถดำเนินการได้โดยฮาร์ดแวร์เฉพาะ กระบวนการนี้เกี่ยวข้องกับการวิเคราะห์โค้ดต้นฉบับ การตรวจสอบข้อผิดพลาด และการสร้างรหัสเครื่องที่ได้รับการปรับให้เหมาะสม
ความถูกต้องของคอมไพเลอร์เป็นสิ่งสำคัญในวิศวกรรมซอฟต์แวร์ เพื่อให้แน่ใจว่าคอมไพเลอร์ทำงานตามข้อกำหนดของภาษา เทคนิคที่ใช้ในการบรรลุความถูกต้องของคอมไพเลอร์รวมถึงการใช้วิธีการทางการในระหว่างการพัฒนาคอมไพเลอร์และการทดสอบอย่างเข้มงวด ซึ่งมักเรียกว่าการตรวจสอบความถูกต้องของคอมไพเลอร์บนคอมไพเลอร์ที่มีอยู่
คอมไพเลอร์ประเภทต่าง ๆ มีอยู่ตามแพลตฟอร์มและภาษาเป้าหมาย คอมไพเลอร์แบบเนทีฟหรือโฮสต์จะสร้างผลลัพธ์ที่สามารถรันได้โดยตรงบนคอมพิวเตอร์และระบบปฏิบัติการเดียวกันกับคอมไพเลอร์เอง คอมไพเลอร์แบบครอสจะสร้างโค้ดที่ตั้งใจให้รันบนแพลตฟอร์มที่แตกต่างกัน คอมไพเลอร์สำหรับเครื่องเสมือนจะสร้างโค้ดที่ตั้งเป้าให้รันบนเครื่องเสมือนแทนที่จะรันโดยตรงบนฮาร์ดแวร์พื้นฐาน
คอมไพเลอร์ประเภทอื่น ๆ รวมถึงคอมไพเลอร์แหล่งที่มาสู่แหล่งที่มา ซึ่งแปลงโค้ดและใส่คำอธิบายประกอบโค้ดแบบขนานหรือโครงสร้างภาษา คอมไพเลอร์ Bytecode จะแปลงโค้ดต้นฉบับเป็นภาษาแอสเซมบลีของเครื่องจักรทฤษฎี ในขณะที่คอมไพเลอร์ Just-in-Time (JIT) จะเลื่อนการคอมไพล์จนกว่าจะถึงเวลารันเพื่อเพิ่มประสิทธิภาพ คอมไพเลอร์ฮาร์ดแวร์ ซึ่งรู้จักกันในชื่อเครื่องมือสังเคราะห์ รับคำอธิบายภาษาฮาร์ดแวร์เป็นอินพุตและสร้างคำอธิบายของการกำหนดค่าฮาร์ดแวร์