행위

LLVM

조무위키

주의. 이 문서는 공머생들이 좋아하는 주제 혹은 공머생 그 자체에 대해 다룹니다.
본 문서가 다루는 내용에 지나치게 탐닉할 경우 필연적으로 여성들과 멀어지게 됩니다.
이는 조무위키가 책임지지 않습니다.
이 문서는 성물(聖物)을 다룹니다.
이 문서는 그 누구도 깔 수 없는 물체를 묘사합니다.
성물을 욕보이게 하는 짓은 하지 맙시다.

저수준 가상머신(Low Level Virtual Machine).


컴파일러 개발용 종합선물세트.


오픈소스 커뮤니티와 애플의 지원 하에 탄생한 마스터피스다.


사용 언어는 C++


기존의 컴파일러 개발은 아주 불편하고 비효율적이었다. 어휘분석 구문분석 최적화 등의 작업이 구분되어있지 않고 막 섞여서 개좆같았다. 그래서 이게 나온거다. llvm은 파싱 및 분석의 프론트엔드, 최적화, 바이너리 생성 등의 백엔드 과정을 세분화해서 다 제공한다.


llvm 백엔드에서 웬만한 플랫폼은 다 지원하기 때문에 어셈같은거 다 볼 필요 없이 전용 어셈블리와 프론트엔드 라이브러리만 다룰줄 알면 예쁘게 동작하는 컴파일러를 (비교적) 손쉽게 만들어낼 수 있다. 전용 어셈블리는 llvm-ir이라고 하는데 어셈보단 고급져서 그래도 좀 쓸만하다.


이걸 사용한 대표적인 구현체로는 Swift, Rust, C/C++ 구현체인 Clang 등이 있다. 이외에도 대부분의 언어들에 llvm 구현체가 존재한다.


언어랑 컴파일러 만들고싶으면 이거만 파라