IT TIP

C—는 LLVM과 어떻게 비교됩니까?

itqueen 2021. 1. 8. 22:37
반응형

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

반응형