컴파일러 이야기
GCC와 LLVM

GCC (1987~)

  • GNU Compiler Collection
  • 1987~
  • GNU 프로젝트를 위한 컴파일러 제공을 목적
  • 처음에는 C를 위한 컴파일러만 만들었으나 다양한 frontend를 지원하도록 발전 (gcc, g++, gobjc, gjc, gfortran, gccgo, ...)

 

LLVM (2003~)

  • Low Level Virtual Machine의 약자가 아님!!!
  • LLVM 라이센스는 LLVM을 이용한 SW의 소스공개 의무 없음
  • 다양한 frontend 특히 최신 언어들 rust, julia 등
  • LLD링커는 GNU ld보다 성능이 대폭 개선됨
  • 사람이 읽을 수 있는 IR형식 
  • 2005년부터 애플에서 도입
  • 2010년대 초반 이후로 컴파일된 프로그램의 성능이 GCC 못지 않게 좋아짐

컴파일러 이야기 GCC와 LLVM

By 안기영 (Ahn, Ki Yung)