มีวิธีเขียนคอมไพเลอร์ในภาษาของตัวเองหรือไม่?
คุณต้องมีภาษาที่มีอยู่ในการเขียนคอมไพเลอร์ใหม่ของคุณหากคุณกำลังเขียนใหม่พูดว่าคอมไพเลอร์ C ++ คุณเพียงแค่เขียนใน C ++ และคอมไพล์ด้วยคอมไพเลอร์ที่มีอยู่ก่อน ในทางกลับกันหากคุณสร้างคอมไพเลอร์สำหรับภาษาใหม่เรียกว่า Yazzleof คุณจะต้องเขียนคอมไพเลอร์ใหม่ในภาษาอื่นก่อน โดยทั่วไปนี่จะเป็นภาษาโปรแกรมอื่น แต่ไม่จำเป็นต้องเป็น สามารถประกอบหรือถ้าจำเป็นรหัสเครื่อง
หากคุณกำลังจะบูตคอมไพเลอร์สำหรับ Yazzleof โดยทั่วไปคุณจะไม่เขียนคอมไพเลอร์สำหรับภาษาเต็มในตอนแรก แทนที่จะเขียนคอมไพเลอร์สำหรับ Yazzle-lite ซึ่งเป็นชุดย่อยที่เล็กที่สุดที่เป็นไปได้ของ Yazzleof ( อย่างน้อยก็เป็นส่วนย่อยที่ค่อนข้างเล็ก ) จากนั้นใน Yazzle-lite คุณจะต้องเขียนคอมไพเลอร์สำหรับภาษาเต็ม (เห็นได้ชัดว่าสิ่งนี้สามารถเกิดขึ้นซ้ำ ๆ แทนที่จะเป็นการกระโดดครั้งเดียว) เนื่องจาก Yazzle-lite เป็นชุดย่อยที่เหมาะสมของ Yazzleof ตอนนี้คุณมีคอมไพเลอร์ที่สามารถรวบรวมตัวเองได้
มีบทความที่ดีมากเกี่ยวกับการบูตคอมไพเลอร์จากระดับต่ำสุดที่เป็นไปได้ (ซึ่งในเครื่องสมัยใหม่นั้นเป็นโปรแกรมแก้ไขเลขฐานสิบหก) ที่มีชื่อว่าBootstrapping คอมไพเลอร์อย่างง่ายจากอะไรเลย มันสามารถพบได้ที่https://web.archive.org/web/20061108010907/http://www.rano.org/bcompiler.html