คอมไพเลอร์คืออะไร

คอมไพเลอร์เป็นโปรแกรมคอมพิวเตอร์ชนิดพิเศษที่แปลไฟล์ข้อความที่มนุษย์สามารถอ่านได้ในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจได้ง่ายขึ้น ในระดับพื้นฐานที่สุดคอมพิวเตอร์สามารถเข้าใจได้เพียงสองสิ่งคือ 1 และ 0 ในระดับนี้มนุษย์จะทำงานช้ามากและค้นหาข้อมูลที่มีอยู่ในสตริงที่ยาว 1s และ 0s ซึ่งไม่สามารถเข้าใจได้ คอมไพเลอร์เป็นโปรแกรมคอมพิวเตอร์ที่เชื่อมช่องว่างนี้

ในการเริ่มต้นคอมไพเลอร์เป็นโปรแกรมที่ง่ายมากที่สามารถแปลสัญลักษณ์เป็น บิต , 1s และ 0s, คอมพิวเตอร์เข้าใจ โปรแกรมนั้นง่ายมากซึ่งประกอบด้วยขั้นตอนต่าง ๆ ที่ถูกแปลด้วยมือเป็นข้อมูลที่คอมพิวเตอร์สามารถเข้าใจได้ นี่เป็นงานที่ต้องใช้เวลามากดังนั้นบางส่วนของงานนี้เป็นแบบอัตโนมัติหรือโปรแกรมและคอมไพเลอร์ตัวแรกเขียนขึ้น โปรแกรมนี้ประกอบหรือรวบรวมขั้นตอนที่จำเป็นในการรันโปรแกรมทีละขั้นตอน

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

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

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

ข้อผิดพลาดที่ จำกัด คอมไพเลอร์ในการทำความเข้าใจโปรแกรมเรียกว่า ข้อผิดพลาดทางไวยากรณ์ ข้อผิดพลาดในวิธีที่ฟังก์ชั่นโปรแกรมเรียกว่า ข้อผิดพลาดเชิงตรรกะ ข้อผิดพลาดทางตรรกะนั้นยากต่อการตรวจสอบและแก้ไข ข้อผิดพลาดทางไวยากรณ์เป็นเหมือนข้อผิดพลาดการสะกดคำในขณะที่ข้อผิดพลาดเชิงตรรกะเป็นอีกเล็กน้อยเช่นข้อผิดพลาดทางไวยากรณ์

โปรแกรมคอมไพเลอร์ข้ามได้รับการพัฒนา cross compiler อนุญาตให้ชุดคำสั่งไฟล์ข้อความที่เขียนขึ้นสำหรับคอมพิวเตอร์หนึ่งเครื่องที่ออกแบบโดยผู้ผลิตเฉพาะรายที่จะรวบรวมและเรียกใช้สำหรับคอมพิวเตอร์เครื่องอื่นโดยผู้ผลิตรายอื่น ตัวอย่างเช่นโปรแกรมที่เขียนขึ้นเพื่อใช้งานบนคอมพิวเตอร์ Intel บางครั้งสามารถคอมไพล์ข้ามเพื่อใช้งานบนคอมพิวเตอร์ที่พัฒนาโดยโมโตโรล่า สิ่งนี้มักใช้งานได้ไม่ดีนัก ในระดับที่โปรแกรมคอมพิวเตอร์ทำงานฮาร์ดแวร์คอมพิวเตอร์อาจดูแตกต่างกันมากถึงแม้ว่าโปรแกรมเหล่านั้นอาจดูคล้ายกับคุณก็ตาม

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