Google Play badge

คอมไพเลอร์


คอมไพเลอร์

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

สิ่งสำคัญคือต้องทราบว่ามีคอมไพเลอร์หลายประเภท ในกรณีที่โปรแกรมที่คอมไพล์สามารถรันบนคอมพิวเตอร์ที่มีระบบปฏิบัติการหรือ CPU แตกต่างจากที่คอมไพเลอร์รัน คอมไพเลอร์จะเรียกว่า cross-compiler ในทางกลับกัน คอมไพเลอร์บูตสแตรปเขียนด้วยภาษาที่ตั้งใจจะคอมไพล์ โปรแกรมถอดรหัสคือโปรแกรมที่ใช้ในการแปลภาษาระดับต่ำเป็นภาษาระดับสูงกว่า โปรแกรมที่ใช้ในการแปลภาษาระดับสูงเรียกว่าคอมไพเลอร์จากต้นทางถึงต้นทาง นอกจากนี้ยังสามารถเรียกได้ว่าเป็นทรานสไพเลอร์ โปรแกรมที่รับผิดชอบในการแปลรูปแบบของสำนวนโดยไม่ต้องเปลี่ยนภาษาเรียกว่าโปรแกรมเขียนใหม่ คำว่าคอมไพเลอร์-คอมไพเลอร์หมายถึงเครื่องมือที่ใช้ในการสร้างพาร์เซอร์ที่รับผิดชอบในการดำเนินการวิเคราะห์ไวยากรณ์

การดำเนินการบางอย่างที่ดำเนินการโดยคอมไพลเลอร์ ได้แก่ การประมวลผลล่วงหน้า การแยกวิเคราะห์ (การแปลตามไวยากรณ์) การวิเคราะห์ความหมาย การวิเคราะห์คำศัพท์ การสร้างโค้ด การเพิ่มประสิทธิภาพโค้ด และการแปลงโปรแกรมอินพุตให้เป็นตัวแทนระดับกลาง คอมไพเลอร์มีหน้าที่รับผิดชอบในการนำการดำเนินการเหล่านี้ไปใช้ในระยะต่างๆ ซึ่งส่งเสริมการแปลงที่ถูกต้องและการออกแบบอินพุตต้นทางไปยังเอาต์พุตเป้าหมายอย่างมีประสิทธิภาพ ข้อบกพร่องของโปรแกรมที่เกิดจากพฤติกรรมที่ไม่ถูกต้องของคอมไพเลอร์อาจติดตามและแก้ไขได้ยากมาก ผู้ดำเนินการคอมไพเลอร์จึงลงทุนความพยายามอย่างมากเพื่อให้แน่ใจว่าคอมไพเลอร์ถูกต้อง

สิ่งสำคัญคือต้องทราบว่าคอมไพเลอร์ไม่ใช่นักแปลเพียงกลุ่มเดียวที่ใช้ในการแปลงโปรแกรมต้นฉบับ ซอฟต์แวร์คอมพิวเตอร์ที่รับผิดชอบในการแปลงและดำเนินการตามที่ระบุเรียกว่าล่าม กระบวนการแปลมีอิทธิพลต่อการออกแบบภาษาคอมพิวเตอร์ ซึ่งนำไปสู่ความต้องการในการตีความหรือเรียบเรียง ในทางปฏิบัติ การใช้งานล่ามสำหรับคอมไพเลอร์และภาษาที่คอมไพล์สามารถนำไปใช้กับภาษาที่ตีความได้

โปรดทราบว่าเมื่อใช้คอมไพลเลอร์ จะใช้กระบวนการสองขั้นตอนในการรันโปรแกรม

ห่วงโซ่เครื่องมือรวบรวม

สำหรับโปรแกรมที่มีขนาดใหญ่ คอมไพเลอร์จะเป็นส่วนหนึ่งของกลุ่มเครื่องมือแบบหลายขั้นตอน

(ตัวประมวลผลล่วงหน้า)- (คอมไพเลอร์)- (แอสเซมเบลอร์)- (ตัวเชื่อมโยง)- (ตัวโหลด)

โครงสร้างของคอมไพเลอร์

คอมไพเลอร์สมัยใหม่ประกอบด้วยสองส่วนหลัก แต่ละส่วนเหล่านี้มักถูกแบ่งย่อย ส่วนสำคัญสองส่วนนี้คือส่วนหน้าและส่วนหลัง

ส่วนหน้ามีหน้าที่ในการวิเคราะห์โปรแกรมต้นฉบับ สร้างการเป็นตัวแทนระดับกลางของโปรแกรม และกำหนดส่วนประกอบต่างๆ ของโปรแกรม โดยทั่วไป ส่วนหน้าจะไม่ขึ้นอยู่กับภาษาเป้าหมาย

ในทางกลับกัน แบ็คเอนด์มีหน้าที่ในการสังเคราะห์โปรแกรมเป้าหมายจากการแสดงระดับกลางที่ผลิตโดยส่วนหน้า โดยทั่วไปแล้ว ส่วนหลังจะกล่าวว่าไม่ขึ้นอยู่กับภาษาต้นฉบับ

Download Primer to continue