Framför

Cfront  är en tidig C++-kompilator, då kallad C med klasser, som konverterade C ++ till C. Utvecklad av Björn StroustrupAT&T Bell Labs runt 1983 . Han förstod inte alla detaljer i språket, det mesta förverkligades med hjälp av vanlig översättning. Cfront inkluderade en parser, en byggare av teckentabeller och klassträd, funktioner och mer. Cfront baserades på CPre , 1979 års C-kompilator .

Eftersom det skrevs i början av C++ var det problematiskt att köra det utan en ordentlig kompilator. Tillsammans med Cfront-koden i C++ fanns det en egengenererad halvfärdig C-version. Denna C-kod kan kompileras och sedan användas för att köra C++-versionen av Cfront.

Mycket av porteringen för att köra Cfront på en ny maskin involverade standard I/O. Cfront C++-strömmar var nära besläktade med de buffrade I/O-strömmarna i C-biblioteket, men interagerade lite med resten av C-miljön.Kompilatorn kunde portas till de flesta System V-derivat utan större förändring, men BSD-baserade system hade i allmänhet mycket mer variation i deras C-bibliotek och relaterade stdio-strukturer.

Cfront definierade språket fram till omkring 1990 , många av språkets funktioner var relaterade till översättningen av C++ till C. Några av dem finns fortfarande kvar i moderna kompilatorer; namnmangling kom från Cfront, dagens primitiva länkar stödde inte typinformation i symboler, och vissa mallinstansieringsmodeller härrör från tidiga Cfront-ansträngningar.

Cfront 4.0 övergavs efter ett misslyckat försök att lägga till stöd för undantag [1] C++ har vuxit bortom sina gränser. En kompilator med liknande tillvägagångssätt dök upp senare, den kallades Comeau C/C++ .

Anteckningar

  1. Scott Myers , den viktigaste C++-mjukvaran ... någonsin arkiverad 28 april 2011 på Wayback Machine , 2006
Anteckningar