LLVM: 為什么你需要關注這個項目

發布時間: 2010-07-08 10:00  閱讀: 1593 次  推薦: 0   原文鏈接   [收藏]  

  LLVM 是 Illinois 大學發起的一個開源項目,它到底是什么呢?從字面上看,它是一個虛機系統,然而這又和之前為大家所熟知的 JVM 以及 .net Runtime 這樣的虛機不同,它提供了一套中立的中間代碼和編譯基礎設施,并圍繞這些設施提供了一套全新的編譯策略(使得優化能夠在編譯、連接、運行環境執行過程中,以及安裝之后以有效的方式進行)和其他一些非常有意思的功能。

  為什么這個項目很重要呢?對于普通的開發人員來說,LLVM計劃提供了越來越多的可以使用、編譯器以外的其他工具。例如代碼靜態檢查工具 LLVM/Clang Static Analyzer,是一個 Clang 的子項目,能夠使用同樣的 Makefile 生成 HTML 格式的分析報告;而對關注編譯技術的開發人員來說,LLVM提供了很多優點:

  • 現代化的設計:LLVM的設計是高度模塊化的,使得其代碼更為清晰和便于排查問題所在。
  • 語言無關的中間代碼:這使得透過LLVM能夠將不同的語言相互連結起來;另一方面,這也使得LLVM能夠緊密地與IDE交互和集成。另一方面,發布中間代碼而非目標代碼能夠在目標系統上更好地發揮其潛能而又不傷害可調試性(i.e. 在目標系統上針對本機的硬件環境產生目標代碼,但又能夠直接通過中間代碼來進行行級調試)
  • 作為工具和函數庫:使用LLVM提供的工具可以比較容易地實現新的編程語言的優化編譯器或VM,或為現有的編程語言引入一些更好的優化/調試特性。

  一些值得關注的基于LLVM的項目:

  CLang C/ObjC/C++ 編譯器。目前C++部分還需要很多工作,但C的部分已經比較成熟了。這個項目還有一個子項目是 LLVM/Clang Static Analyzer

  llvmruby 基于LLVM的一個Ruby實現。

  Unladen SwallowGoogle 發起的,使用 LLVM 替換 Python VM 的項目,其目標是提供更好的性能。

  LLVM項目還提供了一些針對有意使用LLVM來實現新的編譯器/優化工具的開發人員的 教程

0
0
 
標簽:LLVM
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()