Bence BS bu soruyu cevaplıyor:
İlk C ++ derleyicisi (Cfront), C ++ dilinde yazılmıştır. Bunu yapmak için önce C'yi "C Sınıfları olan bir C" ile -C işlemcisini yazmak için kullandım. "Sınıflı C", C ++ 'a anında ata olan bir C lehçesiydi. Önişlemci "Sınıflı C" yapılarını (sınıflar ve yapıcılar gibi) C'ye çevirdi. Bu, tüm dilleri anlamayan, çoğu C derleyicisinin yapması gereken denetleme türünü bırakan ve bireyi çeviren geleneksel bir önişlemciydi. tam bilgi olmadan inşa eder.
Daha sonra "C with Classes" Cfront'un ilk versiyonunu yazdım. Cfront, C ++ kaynağının sözdizimini ve anlamsal denetimini yapan geleneksel bir derleyiciydi. Bunun için, tam bir ayrıştırıcıya, sembol tablolarına ve her sınıfın, fonksiyonun, vb. Tümünün bir iç ağaç temsilini inşa etti. oluşturulan C, herhangi bir tip kontrol için C'ye güvenmedi. Basitçe C'yi bir montajcı olarak kullandı. Sonuçta ortaya çıkan kod uzlaşmaz şekilde hızlıydı.
İlk önce basit bir önişlemci tarafından C'ye uygulanan "Sınıflı C" diye bir şey yarattı. Temel olarak C ++ idi, ancak önişlemci çok az denetledi ya da hiç kontrol etmedi. Daha sonra, C ++ 'ın C ++' a çevirmenin daha güçlü versiyonu olan Cfront’a yazması, tip kontrolü, sembol tabloları vb. İle yazılması için kullandı.