โปรแกรมเมอร์ใช้คอมไพเลอร์เพื่อเปลี่ยนซอร์สโค้ดเป็นรหัสเครื่อง
คอมพิวเตอร์อ่านคำสั่งจากภาษาเครื่องที่เขียนเป็นเลขฐานสอง กล่าวคือ สตริงเลขศูนย์และตัวอักขระยาวๆ แม้ว่าคอมพิวเตอร์จะสามารถอ่านภาษานี้ได้อย่างมีประสิทธิภาพ แต่โปรแกรมเมอร์ที่เป็นมนุษย์ส่วนใหญ่ไม่สามารถทำได้ นั่นคือเหตุผลที่โปรแกรมเมอร์ทำงานในภาษาการเขียนโปรแกรมที่พวกเขาเข้าใจได้ จากนั้นจึงแปลเป็นภาษาเครื่องที่คอมพิวเตอร์สามารถเข้าใจได้ ในขณะที่ภาษาใหม่ ๆ จำนวนมากใช้ล่ามที่แปลจากภาษาหนึ่งไปอีกภาษาหนึ่งในขณะที่โปรแกรมทำงาน แต่เก่ากว่า ภาษาโปรแกรมใช้คอมไพเลอร์ที่ทำการแปลนี้ทั้งหมดก่อนที่คอมพิวเตอร์จะดำเนินการ โปรแกรม.
ข้อได้เปรียบ: พึ่งพาตนเองและมีประสิทธิภาพ
ข้อดีอย่างหนึ่งที่สำคัญของโปรแกรมที่คอมไพล์ก็คือ โปรแกรมเหล่านี้มียูนิตในตัวซึ่งพร้อมที่จะดำเนินการ เนื่องจากมีการคอมไพล์เป็นไบนารีภาษาเครื่องแล้ว จึงไม่มีแอปพลิเคชันหรือแพ็คเกจที่สองที่ผู้ใช้ต้องอัปเดตอยู่เสมอ หากโปรแกรมได้รับการคอมไพล์สำหรับ Windows บนสถาปัตยกรรม x86 ผู้ใช้ปลายทางต้องการเพียงระบบปฏิบัติการ Windows ที่ทำงานบนสถาปัตยกรรม x86 นอกจากนี้ แพ็คเกจที่คอมไพล์ล่วงหน้าสามารถทำงานได้เร็วกว่าล่ามที่คอมไพล์ซอร์สโค้ดในแบบเรียลไทม์
วีดีโอประจำวันนี้
ข้อเสีย: ฮาร์ดแวร์เฉพาะ
เนื่องจากคอมไพเลอร์แปลซอร์สโค้ดเป็นภาษาเครื่องเฉพาะ โปรแกรมจึงต้องเป็น คอมไพล์โดยเฉพาะสำหรับ OS X, Windows หรือ Linux รวมถึงเฉพาะสำหรับ 32- บิตหรือ 64- บิต สถาปัตยกรรม สำหรับโปรแกรมเมอร์หรือบริษัทซอฟต์แวร์ที่พยายามนำผลิตภัณฑ์ออกสู่สายตาผู้ชมในวงกว้างที่สุด นี่หมายถึงการรักษาซอร์สโค้ดหลายเวอร์ชันสำหรับแอปพลิเคชันเดียวกัน ส่งผลให้ใช้เวลามากขึ้นในการบำรุงรักษาซอร์สโค้ดและปัญหาเพิ่มเติมเมื่อมีการเผยแพร่การอัปเดต
ข้อได้เปรียบ: การเพิ่มประสิทธิภาพฮาร์ดแวร์
แม้ว่าการล็อคแพ็คเกจฮาร์ดแวร์บางแพ็คเกจจะมีข้อเสีย แต่การคอมไพล์โปรแกรมก็สามารถเพิ่มประสิทธิภาพได้เช่นกัน ผู้ใช้สามารถส่งตัวเลือกเฉพาะไปยังคอมไพเลอร์เกี่ยวกับรายละเอียดของฮาร์ดแวร์ที่โปรแกรมจะใช้งาน ซึ่งช่วยให้คอมไพเลอร์สร้างรหัสภาษาเครื่องที่ทำให้การใช้ฮาร์ดแวร์ที่ระบุมีประสิทธิภาพสูงสุด เมื่อเทียบกับโค้ดทั่วไป นอกจากนี้ยังช่วยให้ผู้ใช้ขั้นสูงสามารถเพิ่มประสิทธิภาพการทำงานของโปรแกรมบนคอมพิวเตอร์ของตนได้
ข้อเสีย: Compile Times
ข้อเสียอย่างหนึ่งของการมีคอมไพเลอร์คือต้องคอมไพล์ซอร์สโค้ดจริงๆ แม้ว่าโปรแกรมขนาดเล็กที่โค้ดโปรแกรมเมอร์มือใหม่จำนวนมากใช้เวลาในการคอมไพล์เพียงเล็กน้อย แต่ชุดแอพพลิเคชั่นขนาดใหญ่อาจใช้เวลาในการคอมไพล์เป็นจำนวนมาก เมื่อโปรแกรมเมอร์ไม่มีอะไรทำนอกจากรอให้คอมไพเลอร์ทำงานเสร็จ คราวนี้ก็รวมกันได้—โดยเฉพาะในช่วง ขั้นตอนการพัฒนาเมื่อต้องคอมไพล์โค้ดเพื่อทดสอบการทำงานและแก้ไขปัญหา ข้อบกพร่อง