차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

tcc [2011-07-30 01:21] (현재)
lifthrasiir 새로 만듦
줄 1: 줄 1:
 +====== TCC ======
  
 +http://bellard.org/tcc/
 +
 +Tiny C Compiler. [[Fabrice Bellard]]가 만든 [[C컴파일러]]로, 이름 그대로 아주 작고 빠르다. [[x86]] 및 [[x86-64]] 바이너리([[신이치로하마지]] 씨가 0.9.25에서 추가했다)를 생성할 수 있으며, [[GCC]]나 [[Clang]] 같은 다른 자주 쓰이는 컴파일러에 비해서 컴파일 속도는 매우 빠르고 [[컴파일러최적화|최적화]] 정도는 매우 낮다(''-O1'' 정도에 대응되는 수준이라 생각하면 된다).
 +
 +그 기반은 [[IOCCC]] 2001에 낸 [[http://bellard.org/otcc/|OTCC]]라는 **2048바이트짜리** C 컴파일러(그 해 "Best abuse of the rules" 상을 받았다)로, 이 코드를 알아 볼 수 있게 바꾸고 기능을 추가하여 실용적으로 만든 것이 TCC이다. OTCC 코드를 보면 알 수 있듯, TCC는 코드를 한 번만 읽은 뒤 바이너리를 생성하는 싱글 패스 컴파일러인데 당연히 최적화는 제한적으로만(상수 전파, 레지스터 할당 정도) 가능하다. 그러나 여전히 사실상 모든 C 코드를 올바르게 컴파일할 수 있기 때문에(심지어 [[GNUC확장]]도 일부 지원한다) 그 활용도는 무궁무진한데, 이를테면 실시간으로 [[리눅스커널]]을 컴파일해서 리눅스를 부팅시키는 [[http://bellard.org/tcc/tccboot.html|TCCBOOT]] 같은(...) 변태적인 프로젝트가 있다.
 +
 +한때 [[suckless.org]] 프로젝트 아이디어 목록에는 TCC를 더 단순하고 더 강력하게 만들자는 목표가 쓰여 있었는데, 나중에 [[Go언어]]가 나오면서 그냥 다 사라지고 Go로 다 만들자는 내용으로 바뀌었다. [[안습]].
 +
 +{{tag>C컴파일러}}

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-07-30 01:21 | 작성자 lifthrasiir