Cfront je raný kompilátor C++, poté nazvaný C with Classes, který převedl C ++ na C. Vyvinul jej Bjorn Stroustrup v AT&T Bell Labs kolem roku 1983 . Nerozuměl všem detailům jazyka, většina se realizovala pomocí běžného překladu. Cfront obsahoval parser, tvůrce tabulek znaků a stromů tříd, funkce a další. Cfront byl založen na CPre , kompilátoru C z roku 1979 .
Vzhledem k tomu, že byl napsán v raném C++, bylo problematické jej spustit bez správného kompilátoru. Spolu s kódem Cfront v C++ existovala samostatně vygenerovaná polotovarová verze C. Tento kód C by mohl být zkompilován a poté použit ke spuštění C++ verze Cfront.
Velká část úsilí o portování při spuštění Cfront na novém počítači zahrnovala standardní I/O. Cfront C++ streamy byly úzce spjaty s bufferovanými I/O streamy knihovny C, ale málo interagovaly se zbytkem prostředí C. Kompilátor mohl být portován na většinu derivátů System V bez velkých změn, ale systémy založené na BSD obecně měly mnohem více variací v jejich knihovnách C a souvisejících stdio strukturách.
Cfront definoval jazyk asi do roku 1990 , mnoho rysů jazyka souviselo s překladem C++ do C. Některé z nich stále zůstávají v moderních kompilátorech; mandlování názvů pochází z Cfrontu, tehdejší primitivní linkery nepodporovaly typové informace v symbolech a některé modely konkretizace šablon jsou odvozeny z raných snah Cfront.
Cfront 4.0 byl opuštěn po neúspěšném pokusu přidat podporu pro výjimky [1] C++ přesáhlo své hranice. Kompilátor s podobným přístupem se objevil později, jmenoval se Comeau C/C++ .