상위 질문
타임라인
채팅
관점
포터블 C 컴파일러
위키백과, 무료 백과사전
Remove ads
포터블 C 컴파일러(Portable C Compiler, pcc 또는 때로는 pccm - portable C compiler machine으로도 알려져 있음)는 1970년대 중반 벨 연구소의 스티븐 C. 존슨이 작성한 C 프로그래밍 언어용 초기 컴파일러로,[1] 1973년 앨런 스나이더가 제안한 아이디어에 부분적으로 기반을 두었다.[2][3] 데니스 리치의 승인 하에 "벨 연구소의 C 컴파일러로 배포되었다."[4]
다양한 컴퓨터 아키텍처용 코드를 쉽게 출력하도록 조정할 수 있는 최초의 컴파일러 중 하나였던 pcc는 긴 수명을 가졌다. Seventh Edition Unix에서 처음 등장하여 1994년 4.4BSD가 출시될 때까지 BSD와 함께 제공되었으며, 이후 GNU 컴파일러 모음으로 대체되었다. 당시 매우 영향력이 커서 1980년대 초에는 대부분의 C 컴파일러가 이를 기반으로 했다.[5] 앤더스 마그누손(Anders Magnusson)과 피터 A 존슨(Peter A Jonsson)은 2007년에 pcc 개발을 다시 시작하여 C99 표준을 지원하기 위해 광범위하게 재작성했다.[6]
Remove ads
기능
pcc의 주요 특징은 이식성과 향상된 진단 기능이다. 이 컴파일러는 소스 파일 중 일부만이 기계 종속적이도록 설계되었다. 구문 오류에 비교적 강하고 동시대의 컴파일러보다 더 철저한 유효성 검사를 수행한다.
데니스 리치가 작성한 최초의 C 컴파일러는 재귀 하향 파서를 사용했고, PDP-11에 대한 특정 지식을 포함했으며, 생성된 어셈블리 언어 코드를 개선하기 위해 선택적인 기계별 최적화 도구에 의존했다. 대조적으로, 존슨의 pccm은 Yacc로 생성된 파서를 기반으로 했으며 더 일반적인 타겟 머신 모델을 사용했다. 두 컴파일러 모두 타겟별 어셈블리 언어 코드를 생성한 다음 이를 어셈블하여 링크 가능한 오브젝트 모듈을 생성했다.
벨 연구소에서 "QCC" 및 "RCC"로 알려진 후기 버전의 PCC는 다른 타겟 아키텍처 모델을 지원했다.
PCC가 구현하는 언어는 비야네 스트롭스트룹이 "클래식 C"라고 부른 K&R C의 확장 버전으로, `void` 반환 타입(값을 반환하지 않는 함수용), 열거형 및 구조체 할당을 포함한다.[4]
Remove ads
현재 버전
스티브 존슨의 원본을 기반으로 한 새로운 버전의 pcc는 앤더스 매그너슨이 관리하고 있다.[6] 이 컴파일러는 BSD 라이선스 하에 제공되며, 그 개발은 BSD 펀드라는 비영리 단체의 자금 지원을 받는다. 매그너슨에 따르면:
가장 큰 장점은 (라이선스 괴짜들에게 BSD 라이선스라는 점 외에도) 빠르다는 것이다. gcc보다 5-10배 빠르면서도 합리적인 코드를 생성한다. <...> 또한 포팅하기 매우 간단하다...
— 앤더스 매그너슨[7]
이 새로운 버전은 2007년 9월 NetBSD pkgsrc 및 OpenBSD 소스 트리에 추가되었고,[8] 나중에 주 NetBSD 소스 트리에 추가되었다.[9] 한때 BSD 기반 운영체제에서 GNU 컴파일러 모음을 대체할 수 있을 것이라는 추측이 있었지만,[10] FreeBSD[11][12] 및 NetBSD[13]는 모두 클랭을 잠재적 대체재로 보고 있으며, OpenBSD의 테오 드 라트는 pcc가 아직 gcc를 대체할 준비가 되어 있지 않으며 gcc 제거가 최우선 순위는 아니라고 주장한다.[14] 2009년 12월 29일, pcc는 기능적인 X86 OpenBSD 커널 이미지를 빌드할 수 있게 되었다.[15]
pcc 버전 1.0은 2011년 4월 1일에 출시되었다.[16] 이 릴리스부터 컴파일러는 X86 및 X86-64 프로세서 아키텍처를 지원하며 NetBSD, OpenBSD, FreeBSD, 다양한 리눅스 배포판 및 마이크로소프트 윈도우에서 실행된다.[17] 더 많은 아키텍처 지원과 FORTRAN 77 및 C++ 프런트엔드를 포함한 추가 개발은 2022년 현재 진행 중이다.
PCC는 2012년에 OpenBSD 소스 트리에서 제거되었다.[18] 개발이 정체되었고 GNU 컴파일러 모음의 실질적인 대안이 될 수 있도록 개발할 관리자가 나타나지 않았기 때문이다.[19][20]
pcc의 최신 버전인 1.1.0은 2014년 12월 10일에 출시되었다.[21]
Remove ads
같이 보기
- 암스테르담 컴파일러 키트
- 클랭
- 오픈 왓콤
각주
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads