C—는 LLVM과 어떻게 비교됩니까?
LLVM이 어떻게 작동하는지 조금 배운 후에는 이식 가능한 저수준 코드를 생성하는 방법과이 '물건'이 어떻게 모듈화되는지에 대해 정말 흥분됩니다.
하지만 저는 오늘 LLVM과 몇 가지 개념을 공유하는 것처럼 보이는 C의 존재를 발견했습니다.
그래서 저는이 두 프로젝트의 주요 차이점과 둘 다 존재하는 이유를 이해하는 데 도움이되는 정보를 찾고 있습니다.
나에게 LLVM은 컴파일러 인프라를위한 궁극의 Swiss Army 칼처럼 보였고 C--는 훨씬 덜 발전해 보입니다.
저수준 기계 유형 시스템의 표현 방식이 다릅니다.
LLVM의 기계는 꽤 표현이다. 반면에 C-- 기계는 언어 프런트 엔드에 많은 책임을집니다. C-- FAQ 에서 인용 : "단순히 C-- 에는 고수준 유형이 없습니다 .-- 부동 소수점 변수와 정수 변수를 구별하지도 않습니다.이 모델은 표현 및 유형 시스템의 프런트 엔드 전체 제어를 제공합니다."
또한 시각적으로 많이 다르게 보입니다. C-- C와 매우 비슷하고 LLVM은 어셈블러와 매우 유사합니다.
실용적으로 LLVM은 현재 훨씬 더 많은 추진력을 가지고 있습니다. 그것은 JIT 컴파일러를 가지고 있고, Apple은 그것을 3D 파이프 라인 에 사용하고 있으며 사람들은 그것을 GCC 와 모든 종류의 이상 하고 멋진 것들 에 연결하기 위해 사용하고 있습니다. 누군가는 그것을 " 거의 터무니없이 쉽게 작업 할 수 있다"고 불렀습니다 .
반면에 C-- 는 훨씬 더 작고 아마도 완전히 이해하기 쉽습니다. (나는 약간의 헌신을 가진 평범한 사람 이 그것의 모든 측면을 완전히 이해할 수 있다고 상상 합니다.)
참조 URL : https://stackoverflow.com/questions/3891513/how-does-c-compare-to-llvm
'IT TIP' 카테고리의 다른 글
상자 속성은 무엇이며 어디에 추가합니까? (0) | 2021.01.08 |
---|---|
콘텐츠 보안 정책 : 페이지 설정이 리소스로드를 차단했습니다. (0) | 2021.01.08 |
DNS는 domain.com을 www.domain.com으로 리디렉션합니다. (0) | 2021.01.08 |
AngularJS-HTML 요소없이 ng-if를 사용하는 방법 (0) | 2021.01.08 |
Gmail 용 Chrome 확장 프로그램을 개발하는 방법은 무엇입니까? (0) | 2021.01.08 |