| 개발자 | 데이브 핸슨 및 크리스 프레이저 |
|---|---|
| 발표일 | 1994년 |
| 안정화 버전 | 4.2
/ 2002년 9월 4일 |
| 저장소 | |
| 프로그래밍 언어 | C |
| 운영 체제 | 크로스 플랫폼 |
| 종류 | 컴파일러 |
| 라이선스 | LCC License |
| 웹사이트 | drh |
LCC("Local C Compiler" 또는 "Little C Compiler")는 ANSI C 프로그래밍 언어를 위한 작고 재표적화 가능한 컴파일러이다. 소스 코드는 개인 용도로 무료로 제공되지만, LCC에서 파생된 제품은 판매할 수 없으므로 일반적인 정의에 따르면 오픈 소스 또는 자유 소프트웨어가 아니다. 단, LCC에서 파생되지 않은 구성 요소는 판매할 수 있다. 이 컴파일러는 크리스 프레이저와 데이비드 핸슨이 개발했다.
LCC는 이해하기 매우 간단하고 문서화가 잘 되어 있다. 이 컴파일러의 설계는 프레이저와 핸슨의 저서인 "재표적화 가능한 C 컴파일러: 설계 및 구현(A Retargetable C Compiler: Design and Implementation)"에 설명되어 있다. 이 책에는 노웹을 사용하여 문학적 프로그램으로 작성된 컴파일러 버전 3.6의 대부분의 소스 코드가 포함되어 있다. 2011년 7월 현재 LCC의 최신 버전은 4.2이지만, 책의 많은 내용은 이 버전에도 여전히 적용된다. 책 출판 이후의 주요 변경 사항은 코드 생성기 인터페이스이며, 이는 별도의 문서에 설명되어 있다.
LCC의 소스 코드는 약 2만 줄로, 많은 주요 컴파일러보다 훨씬 작다.
LCC는 Alpha, SPARC, MIPS, x86을 포함한 여러 프로세서 아키텍처용 코드를 생성할 수 있다. 마이크로소프트의 공통 중간 언어를 생성하는 LCC 백엔드도 있다.
이드 소프트웨어의 이드 테크 3 엔진은 LCC의 수정된 버전을 사용하여 각 게임 모듈 또는 타사 모드의 소스 코드를 가상 머신을 대상으로 하는 바이트코드로 컴파일한다. 이는 악의적인 모드 제작자가 제기하는 위협을 줄이기 위해 모듈이 시스템 호출과 엔진이 제공하는 제한된 파일 시스템 범위를 넘어 시스템에 무지하다는 것을 의미한다. 또 다른 고려 사항은 엔진용으로 작성된 게임과 모드가 재컴파일 없이 이식 가능하다는 것이다. 모듈을 실행하기 위해 이식만 하면 된다.
lcc-win32는 마이크로소프트 윈도우용 통합 개발 환경 패키지로, LCC의 포크를 포함한다. 2012년 4월 15일부터 사용할 수 있는 lcc-win64라는 amd64 대응 버전도 있다.
Pelles C의 컴파일러는 C11 및 C17 지원, amd64 지원, 인라인 확장과 같은 추가 최적화 기법 및 IDE를 제공하는 LCC의 크게 수정된 버전이다.
32비트 윈도우 머신의 경우, 매스웍스 매트랩 및 관련 제품에 다른 컴파일러가 설치되어 있지 않으면 Lcc가 기본값으로 사용된다.
LCC는 개인 용도로 무료이며, 모든 배포 미디어 및 제품 문서에 이를 인정하면 재배포할 수 있다. LCC 라이선스는 여러 경우에서 예시에 의존한다. LCC는 이윤을 목적으로 판매할 수 없지만, LCC 자체가 무료로 배포되는 한 이윤을 목적으로 판매되는 다른 소프트웨어와 함께 포함될 수 있다. 사용자별 및 무제한 사용 라이선스는 Addison-Wesley에 연락하여 얻을 수 있으며, 특히 C 컴파일러가 작업의 많은 부분을 구성할 수 있는 C++와 같은 언어의 컴파일러에 해당한다.