프런트

Cfront

Cfront는 1983년경부터 C++(당시 "C with Classes"로 알려짐)를 위한 최초의 컴파일러로, AT&T Bell Labs의 Bjarne Strostrup에 의해 C++에서 C;로 변환되었다.프리프로세서는 모든 언어를 이해하지 못했고 대부분의 코드는 번역을 통해 작성되었습니다.Cfront는 완전한 파서를 갖추고 심볼 테이블을 작성하며 클래스, 함수 트리를 작성했습니다.Cfront는 1979년에 시작된 C 컴파일러인 CPre를 기반으로 합니다.

Cfront는 C++로 작성되었기 때문에 C++ 컴파일러/번역기가 없는 머신에서 부트스트랩을 하는 것은 어려운 일이었습니다.Cfront C++ 소스와 함께 Cfront 자체 컴파일에 의한 특별한 "반쪽 전처리" 버전의 C 코드도 제공되었습니다.이 C 코드는 네이티브 C 컴파일러를 사용하여 컴파일되며, 그 결과 Cfront C++ 소스를 컴파일하기 위해 실행 가능 파일을 사용할 수 있습니다.

Cfront를 새로운 머신으로 가동시키기 위한 포팅 작업의 대부분은 표준 I/O와 관련되어 있었습니다.Cfront의 C++ 스트림은 C 라이브러리의 버퍼링된 I/O 스트림과 밀접하게 관련되어 있었지만 나머지 C 환경과의 상호 작용은 거의 없었습니다.컴파일러는 많은 변경 없이 대부분의 System V 파생 모델에 이식할 수 있었지만, BSD 기반 시스템은 보통 C 라이브러리와 관련된 stdio 구조에 더 많은 변형이 있었습니다.

Cfront는 1990년경까지 이 언어를 정의했으며, C++에서 더 불분명한 코너 케이스의 대부분은 C++-to-C 번역 접근법과 관련이 있었다.Cfront의 번역 방법의 잔재는 오늘날의 C++ 컴파일러에 남아 있습니다.이름 망글링은 Cfront에서 유래했습니다.당시 비교적 원시적인 링커는 심볼의 유형 정보를 지원하지 않았기 때문입니다.또한 일부 템플릿 인스턴스화 모델은 Cfront의 초기 노력에서 파생되었습니다.C++(및 Cfront)는 Unix 링커와 오브젝트 파일 포맷의 많은 개선에 직접적인 책임이 있었습니다.이는 링크 타임 타입 체크, 약한 심볼 및 기타 유사한 기능을 필요로 하는 최초의 널리 사용되는 언어였기 때문입니다.

Cfront 4.0은 예외 [1]지원 추가 시도가 실패하여 1993년에 포기되었습니다.C++ 언어는 그 능력 이상으로 성장했지만, 비슷한 접근 방식을 가진 컴파일러, 즉 Comau C/C++는 나중에 사용할 수 있게 되었습니다.

레퍼런스

메모들
  • Bjarne Stroustrup. "Evolving a language in and for the real world: C++ 1991-2006" (PDF). Archived from the original (PDF) on 2007-11-20.
  • Bjarne Stroustrup. "Bjarne Stroustrup's FAQ".
  • Bjarne Stroustrup. "The Design and Evolution of C++".

외부 링크