LLVM
LLVM(이전 이름: Low Level Virtual Machine)은 컴파일러의 기반구조이다. 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구현할 수 있도록 구성되어 있다.
LLVM은 원래는 저수준 가상 기계(low-level virtual machine)의 약자를 가리켰지만, LLVM이 성장하면서 다양한 목적을 가지게 되면서 현재는 이 약자는 사용하지 않는다.
LLVM의 핵심 코드는 'LLVM 라이선스'로 배포되며, 이것은 BSD 라이선스와 비슷한 속성을 가진다. 즉, LLVM을 사용한 프로그램을 배포하였을 때 해당 소스 코드를 공개/배포해야 하는 의무가 없다. 단 LLVM의 프론트엔드를 GNU 컴파일러 모음(GCC) 기반으로 사용할 경우 프론트엔드는 GPL로 배포한다. LLVM 프로젝트에서는 LLVM 라이선스를 가지는 프론트엔드를 위해, Clang이라는 프로젝트를 진행하고 있다.
Category
흔한 컴파일러 오해들
Compiler#흔한 컴파일러 오해들 항목 참조.
See also
- Intermediate representation (IR; Intermediate language)
- Vortex - 고성능 Columnar 파일 포맷. 압축된 Apache Arrow 배열을 다루기 위함.
Favorite site
- LLVM web site
- LLVM for Windows
- Wikipedia (en) LLVM에 대한 설명
- LLVM컴파일러란?
- Llvm 기초 소개
- 만화로 보는 LLVM 프로젝트 | GeekNews