บทแนะนำการออกแบบคอมไพเลอร์
คอมไพเลอร์แปลรหัสที่เขียนในภาษาหนึ่งเป็นภาษาอื่นโดยไม่เปลี่ยนความหมายของโปรแกรม นอกจากนี้ยังคาดว่าคอมไพเลอร์ควรทำให้โค้ดเป้าหมายมีประสิทธิภาพและเหมาะสมที่สุดในแง่ของเวลาและพื้นที่
หลักการออกแบบคอมไพเลอร์ให้มุมมองเชิงลึกของการแปลและกระบวนการเพิ่มประสิทธิภาพ การออกแบบคอมไพเลอร์ครอบคลุมกลไกการแปลพื้นฐานและการตรวจจับและกู้คืนข้อผิดพลาด ซึ่งรวมถึงการวิเคราะห์ศัพท์ไวยากรณ์และความหมายเป็นส่วนหน้าและการสร้างโค้ดและการเพิ่มประสิทธิภาพเป็นส่วนหลัง
ทำไมต้องเรียนรู้การออกแบบคอมไพเลอร์?
คอมพิวเตอร์เป็นการผสมผสานระหว่างซอฟต์แวร์และฮาร์ดแวร์อย่างสมดุล ฮาร์ดแวร์เป็นเพียงชิ้นส่วนของเครื่องจักรกลและการทำงานของมันถูกควบคุมโดยซอฟต์แวร์ที่เข้ากันได้ ฮาร์ดแวร์เข้าใจคำสั่งในรูปแบบของประจุอิเล็กทรอนิกส์ซึ่งเป็นคู่ของภาษาไบนารีในการเขียนโปรแกรมซอฟต์แวร์ ภาษาไบนารีมีเพียงสองตัวอักษรคือ 0 และ 1 ในการสั่งการรหัสฮาร์ดแวร์จะต้องเขียนในรูปแบบไบนารีซึ่งเป็นเพียงชุดของ 1s และ 0s มันจะเป็นงานที่ยากและยุ่งยากสำหรับนักเขียนโปรแกรมคอมพิวเตอร์ในการเขียนโค้ดดังกล่าวซึ่งเป็นสาเหตุที่เรามีคอมไพเลอร์เพื่อเขียนโค้ดดังกล่าว
ระบบประมวลผลภาษา
เราได้เรียนรู้ว่าระบบคอมพิวเตอร์ใด ๆ ที่สร้างขึ้นจากฮาร์ดแวร์และซอฟต์แวร์ ฮาร์ดแวร์เข้าใจภาษาซึ่งมนุษย์ไม่สามารถเข้าใจได้ ดังนั้นเราจึงเขียนโปรแกรมด้วยภาษาระดับสูงซึ่งง่ายกว่าสำหรับเราที่จะเข้าใจและจดจำ จากนั้นโปรแกรมเหล่านี้จะถูกป้อนเข้าไปในชุดเครื่องมือและส่วนประกอบของระบบปฏิบัติการเพื่อให้ได้รหัสที่ต้องการซึ่งเครื่องสามารถใช้งานได้ สิ่งนี้เรียกว่าระบบประมวลผลภาษา
ผู้ชม
บทช่วยสอนนี้ออกแบบมาสำหรับนักเรียนที่สนใจในการเรียนรู้หลักการพื้นฐานของคอมไพเลอร์ผู้อ่านที่กระตือรือร้นที่ต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคอมไพเลอร์และผู้ที่ต้องการออกแบบคอมไพเลอร์ด้วยตนเองสามารถเริ่มได้จากที่นี่
ข้อกำหนดเบื้องต้น
บทช่วยสอนนี้ไม่จำเป็นต้องมีความรู้มาก่อนเกี่ยวกับการออกแบบคอมไพเลอร์ แต่ต้องมีความเข้าใจพื้นฐานของภาษาโปรแกรมอย่างน้อยหนึ่งภาษาเช่น C, Java เป็นต้นซึ่งจะเป็นประโยชน์เพิ่มเติมหากคุณเคยสัมผัสกับ Assembly Programming มาก่อน