Z przodu
Cfront był oryginalnym kompilatorem C++ (wówczas znanym jako „ C with Classes”) z około 1983 roku, który przekonwertował C++ na C ; opracowany przez Bjarne Stroustrupa z AT&T Bell Labs. Preprocesor nie rozumiał całego języka i znaczna część kodu została napisana poprzez tłumaczenia . Cfront miał kompletny parser , zbudował tablice symboli i zbudował drzewo dla każdej klasy , funkcji itp. Cfront był oparty na CPre, kompilator C uruchomiony w 1979 roku.
Ponieważ Cfront został napisany w C++, wyzwaniem było ładowanie na maszynie bez kompilatora/tłumacza C++. Wraz ze źródłami Cfront C ++ dostarczono również specjalną „w połowie wstępnie przetworzoną” wersję kodu C, powstałą w wyniku kompilacji Cfront z samym sobą. Ten kod C miał zostać skompilowany za pomocą natywnego kompilatora C, a wynikowy plik wykonywalny mógł być następnie użyty do skompilowania źródeł Cfront C++.
Większość wysiłku związanego z przenoszeniem, aby uruchomić Cfront na nowej maszynie, była związana ze standardowymi wejściami/wyjściami. Strumienie C++ Cfront były ściśle powiązane z buforowanymi strumieniami we/wy biblioteki C, ale interakcja z resztą środowiska C była niewielka. Kompilator można było przenieść na większość Systemu V bez wielu zmian, ale systemy oparte na BSD miały zwykle znacznie więcej odmian w swoich bibliotekach C i powiązanych strukturach stdio.
Cfront definiował język do około 1990 roku, a wiele bardziej niejasnych przypadków narożnych w C++ było związanych z jego podejściem do tłumaczenia z C++ na C. W dzisiejszych kompilatorach C++ nadal można znaleźć kilka pozostałości metody tłumaczenia Cfront; zniekształcanie nazw zostało zapoczątkowane przez Cfront, ponieważ stosunkowo prymitywne łączniki w tamtym czasie nie obsługiwały informacji o typie w symbolach, a niektóre modele tworzenia instancji szablonów wywodzą się z wczesnych wysiłków Cfront. C++ (i Cfront) był bezpośrednio odpowiedzialny za wiele ulepszeń Unix i formatów plików obiektowych , ponieważ był to pierwszy powszechnie używany język, który wymagał sprawdzania typów w czasie łączenia, słabych symboli i innych podobnych funkcji.
Cfront 4.0 został porzucony w 1993 roku po nieudanej próbie dodania obsługi wyjątków . Język C++ przekroczył swoje możliwości; jednak kompilator o podobnym podejściu stał się dostępny później, a mianowicie Comeau C/C++ .
- Notatki
- Bjarne Stroustrup. „Ewolucja języka w prawdziwym świecie i dla niego: C++ 1991-2006” (PDF) . Zarchiwizowane od oryginału (PDF) w dniu 20.11.2007.
- Bjarne Stroustrup. „Często zadawane pytania Bjarne'a Stroustrupa” .
- Bjarne Stroustrup. „Projekt i ewolucja języka C++” .
Linki zewnętrzne