天天看點

《深入了解LLVM》第一章 LLVM簡介

第一章 LLVM簡介

作者:史甯甯

1.1 LLVM是什麼

LLVM是什麼?這是一個雖然基礎,但是也曾經讓很多新入門的人迷惑的一個問題。從字面上來講,LLVM(Low Level Virtual Machine)是一個底層虛拟機,LLVM曾經有一部分功能對虛拟機有所幫助。但是現在,LLVM所代表的基本和虛拟機沒有關系了,也不在作為一個縮寫使用了,而是直接作為一個名字使用。那麼LLVM到底是什麼?

LLVM可以被看作是一系列的編譯器和工具鍊技術的集合,而且它們是子產品化并且是可重用的。這是LLVM官方的解釋。原話是:The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.【1】官方定義永遠是準确的精煉的,那麼作為剛剛接觸LLVM的初學者,對LLVM的了解是什麼呢?

  • LLVM是一個編譯器;
  • LLVM是一個編譯器架構;
  • LLVM是一系列的編譯器工具;
  • LLVM是一個編譯器工具鍊;
  • LLVM是一個C++實作的開源軟體;

這幾種對LLVM的了解都對,但是也都是LLVM的一個方面,綜合起來就是一個完整的LLVM。是以,從狹義上來說,可以簡單的把LLVM了解為一個編譯器,但是也必須知道,這個編譯器可不僅僅是個編譯器,它包含了編譯相關的各種工具鍊,并且有一些相對獨立的工具,而且它還是開源的。關鍵一點不要再搞混了,LLVM是搞編譯的,跟虛拟機已經完全沒關系了。

每個人對同一個事務的了解都不會完全相同,即使是在技術領域也一樣。是以,隻要保證對事務了解不出現片面化錯誤化,使用自己的了解去思考一個事務,要比牢記住官方的定義要好的多,雖然後者往往更加的精确和簡約。這是貫徹本書所建議的一個思考方式,隻有這樣,才能将知識和技術轉化為自己的。

1.2 LLVM的發展

LLVM起源于2000年伊利諾伊大學厄巴納-香槟分校維克拉姆•艾夫(Vikram Adve)與克裡斯•拉特納(Chris Lattner)的研究發展而成,他們想要為所有靜态及動态語言創造出動态的編譯技術【2】。

LLVM從創立至今,已經走過了十幾個年頭。在這十幾個年頭裡,它的發展是有目共睹的,它的成績也是令人值得驕傲的。

繼續閱讀