ฉันคิดว่า BS ตอบคำถามนั้น:
คอมไพเลอร์ C ++ ตัวแรก (Cfront) เขียนด้วย C ++ ในการสร้างสิ่งนั้นฉันใช้ C เพื่อเขียน "C with Classes" -to-C preprocessor "C with Classes" เป็นภาษาถิ่น C ที่กลายเป็นบรรพบุรุษของ C ++ ทันที ตัวประมวลผลล่วงหน้าแปลว่า "C พร้อมคลาส" สร้าง (เช่นคลาสและตัวสร้าง) เป็น C มันเป็นตัวประมวลผลดั้งเดิมที่ไม่เข้าใจภาษาทั้งหมดเหลือการตรวจสอบประเภทส่วนใหญ่เพื่อให้คอมไพเลอร์ C ต้องทำและแปลเป็นรายบุคคล สร้างโดยไม่มีความรู้ที่สมบูรณ์
ฉันเขียน Cfront เวอร์ชันแรกใน "C with Classes" Cfront เป็นคอมไพเลอร์แบบดั้งเดิมที่ทำการตรวจสอบไวยากรณ์และความหมายของซอร์ส C ++ ให้เสร็จสมบูรณ์ สำหรับสิ่งนั้นมันมีตัวแยกวิเคราะห์ที่สมบูรณ์ตารางสัญลักษณ์ที่สร้างขึ้นและสร้างการแสดงต้นไม้ภายในที่สมบูรณ์ของแต่ละคลาสฟังก์ชั่น ฯลฯ นอกจากนี้ยังมีการปรับระดับแหล่งที่มาบางส่วนให้กับการแทนต้นไม้ภายในของ C ++ สร้าง C ไม่ได้พึ่งพา C สำหรับการตรวจสอบทุกประเภท มันใช้ C เป็นแอสเซมเบลอร์ รหัสผลลัพธ์นั้นรวดเร็วอย่างไม่น่าเชื่อ
ครั้งแรกที่เขาสร้างบางสิ่งที่เขาเรียกว่า "C กับคลาส" ที่ใช้งานโดย preprocessor ง่าย ๆ ใน C โดยพื้นฐานแล้วคือ C ++ แต่ตัวประมวลผลล่วงหน้าทำการตรวจสอบเพียงเล็กน้อยหรือไม่มีเลย จากนั้นเขาก็ใช้การเขียน Cfront รุ่นนักแปล C ++ ที่มีประสิทธิภาพมากขึ้นใน C พร้อมการตรวจสอบประเภทตารางสัญลักษณ์และอื่น ๆ