मुझे लगता है कि बीएस इस सवाल का जवाब देता है:
पहला C ++ कंपाइलर (Cfront) C ++ में लिखा गया था। इसे बनाने के लिए, मैंने पहली बार C को "C with Classes" -to-C प्रीप्रोसेसर के रूप में लिखा। "सी विद क्लासेस" एक सी बोली थी जो C ++ का तत्काल पूर्वज बन गया। उस प्रीप्रोसेसर ने "सी विद क्लासेस" कंस्ट्रक्शन (जैसे क्लासेस और कंस्ट्रक्टर्स) का सी। में अनुवाद किया। यह एक पारंपरिक प्रीप्रोसेसर था, जो भाषा के सभी को नहीं समझता था, सी कंपाइलर को करने के लिए अधिकांश प्रकार की जाँच को छोड़ दिया, और व्यक्तिगत अनुवाद किया। पूर्ण ज्ञान के बिना निर्माण करता है।
मैंने तब "C with Classes" में Cfront का पहला संस्करण लिखा। Cfront एक पारंपरिक संकलक था जिसने C ++ स्रोत का सिंटैक्स और सिमेंटिक जाँच पूरी की। उसके लिए, इसमें एक पूर्ण पार्सर था, प्रतीक टेबल बनाए गए थे, और प्रत्येक वर्ग, फ़ंक्शन आदि का एक पूर्ण आंतरिक ट्री प्रतिनिधित्व बनाया था। इसने सी + + के आंतरिक ट्री प्रतिनिधित्व पर कुछ स्रोत स्तर का अनुकूलन भी किया था। सी का उत्पादन करने से पहले संस्करण। उत्पन्न C, किसी भी प्रकार की जाँच के लिए C पर निर्भर नहीं था। यह बस एक कोडांतरक के रूप में C का उपयोग करता है। परिणामस्वरूप कोड तेजी से अनियंत्रित था।
पहले उन्होंने सी में एक साधारण प्रीप्रोसेसर द्वारा कार्यान्वित "सी विद क्लासेस" नामक कुछ बनाया, यह मूल रूप से सी ++ था, लेकिन प्रीप्रोसेसर ने बहुत कम या कोई जाँच नहीं की। उन्होंने तब Cfront लिखने के लिए C ++ में अनुवादक के अधिक शक्तिशाली संस्करण को टाइप चेकिंग, प्रतीक तालिकाओं आदि के साथ पूरा करने के लिए उपयोग किया।