成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LLVM和Clang背后的故事

開發(fā) 開發(fā)工具
LLVM是Apple官方支持的編譯器,而該編譯器的前端是Clang,這兩個工具都被集成到了Xcode里面。在這篇文章中,我們來了解一下LLVM和Clang背后的故事。

[[178675]]

LLVM是Apple官方支持的編譯器,而該編譯器的前端是Clang,這兩個工具都被集成到了Xcode里面。在這篇文章中,我們來了解一下LLVM和Clang背后的故事。

在很長一段時間里,Apple一直使用GCC作為官方的編譯器。GCC作為開源世界的編譯器標(biāo)準(zhǔn)一直做得不錯,但Apple對編譯工具提出了更高的要求。

仗著自己在開源社區(qū)的地位,GCC 開發(fā)者對Apple的Objective-C語言新增的很多特性不予理睬,甚至當(dāng)Apple想做的很多功能需要用模塊化的方式來調(diào)用 GCC時,GCC卻一直不給做。一般的公司遇到這種情況,可能都有些受不了,何況是喬布斯領(lǐng)導(dǎo)的Apple呢?

與GCC的不和讓Apple一直在尋找一個高效的、模塊化的、協(xié)議更放松的開源的編譯器替代品。最終,Apple相中了Chris Lattner的LLVM。

現(xiàn)在依然就職于Apple的Chris Lattner可是一位大神,他于2000年畢業(yè)于俄勒岡州波特蘭大學(xué)計算機科學(xué)專業(yè),同年前往UIUC(伊利諾伊大學(xué)厄巴納香檳分校),攻讀計算機科學(xué)碩士和博士學(xué)位。在UIUC期間,他的GPA是4.0(滿分),并不斷地研究探索關(guān)于編譯器的未知領(lǐng)域,發(fā)表了多篇論文。在碩士畢業(yè)論文中,他提出了一套完整的在編譯時、鏈接時、運行時甚至是在閑置時優(yōu)化程序的編譯思想,奠定了LLVM的基礎(chǔ)。

LLVM在Chris Lattner念博士時更加的成熟。首先,LLVM使用GCC作為前端來對用戶程序進(jìn)行語義分析產(chǎn)生 IF(Intermidiate Format),然后,LLVM使用分析結(jié)果完成代碼優(yōu)化和生成。這項研究讓Chris Lattner在2005年畢業(yè)的時候,成為了小有名氣的編譯器專家。他也因此早早地被Apple相中,成為其編譯器項目的骨干。

進(jìn)入Apple之后,Chris Lattner首先在OpenGL小組做代碼優(yōu)化,把LLVM運行時的編譯架在OpenGL棧上,這樣OpenGL棧能夠產(chǎn)出更高效率的圖形代碼。這個強大的OpenGL實現(xiàn)被用在了后來發(fā)布的Mac OS X 10.5上。同時,LLVM 的鏈接優(yōu)化被直接加入到Apple的代碼鏈接器上。

一個好的工具,必須要有用武之地。幾年之后,LLVM的機會就來了。Mac OS X 10.6 Snow Leopard的新功能,完全得益于LLVM的技術(shù),而這一個版本,也是將LLVM推向真正成熟的重大機遇。

“一個籬笆三個樁,一個好漢三個幫”,LLVM能夠?qū)崿F(xiàn)很多華麗的功能,要歸功于LLVM自身的新前端——Clang。

GCC系統(tǒng)龐大而笨重,因此,Apple決定從零開始寫C、C++、Objective-C語言的前端Clang,以求完全替代掉GCC。

Clang于2007年開始開發(fā),C編譯器最早完成,在2009年的時候,Objective-C編譯器已經(jīng)完全可以用于生產(chǎn)環(huán)境,而在一年之后,Clang基本實現(xiàn)了對C++編譯的支持。

Clang一個重要的特性是編譯快速、占內(nèi)存少,而代碼質(zhì)量還比GCC來得高。得益于本身健壯的架構(gòu)和Apple的大力支持,Clang越來越全能,支持的項目越來越多,如Mac OS X 10.6時代的Xcode和Interface Builder等,皆由Clang編譯。Clang的加入也代表著LLVM真正走向成熟。

此外,Clang有一個重要的衍生項目是靜態(tài)分析工具,能夠通過自動分析程序的邏輯,在編譯時就找出程序可能的bug,這個功能叫做ARC。ARC的實現(xiàn)讓當(dāng)時的廣大開發(fā)者們大為驚愕。

除了LLVM核心和Clang以外,LLVM還包括一些重要的子項目,比如一個原生支持調(diào)試多線程程序的調(diào)試器LLDB和一個C++的標(biāo)準(zhǔn)庫libstdc++。不光是Apple,很多的項目和編程語言都從LLVM中取得了關(guān)鍵性的技術(shù)。

從LLVM的發(fā)展歷程中可以看到,LLVM在短短五年內(nèi)(2005年-2010年)取得了快速的發(fā)展,這充分反映了Apple對于產(chǎn)品技術(shù)的遠(yuǎn)見和超強的執(zhí)行力。也正是因為這樣,LLVM一躍成為了最領(lǐng)先的開源軟件技術(shù)之一。而大神Chris Lattner也在2010年贏得了Programming Languages Software Award(程序設(shè)計語言軟件獎)。

大神的故事還沒有結(jié)束,Chris Lattner于2010年7月開始著手Swift編程語言的設(shè)計工作,他實現(xiàn)了該語言的大部分基礎(chǔ)架構(gòu)。2011年末,又有幾位大神加入了該項目。2013年7月,Swift項目成為了蘋果開發(fā)者工具部門的主要焦點。在2014年6月2日,Swift語言正式發(fā)布,Chris Lattner及其工作又一次贏得了廣大開發(fā)者們驚愕的目光。目前,Chris Lattner是蘋果公司開發(fā)者工具部門的主管,領(lǐng)導(dǎo)Xcode、Instruments和編譯器團隊。

【本文是51CTO專欄作者周兆熊的原創(chuàng)文章,作者微信公眾號:周氏邏輯(logiczhou)】

責(zé)任編輯:武曉燕 來源: csdn博客
相關(guān)推薦

2018-02-25 10:33:46

LLVMSwiftRust

2020-11-03 10:32:22

編譯器工具代碼

2012-10-17 13:50:25

2011-09-26 14:28:28

水果忍者

2018-11-06 15:56:25

西門子工業(yè)網(wǎng)絡(luò)智能制造

2021-12-27 11:11:30

LLVMSPIR-V后端

2015-09-29 09:12:51

數(shù)據(jù)圖表

2017-01-15 11:01:56

2014-04-14 10:06:22

.Net 開源

2021-04-25 18:09:53

Fedora 35編譯器開發(fā)

2013-07-23 09:02:48

Facebook Ho應(yīng)用設(shè)計

2016-12-12 14:24:25

蘋果Aqua界面

2023-09-26 07:33:41

2021-09-05 18:26:42

2015-06-18 11:28:18

谷歌

2013-02-20 10:05:21

吳剛捕魚達(dá)人

2017-10-30 08:20:16

王者榮耀騰訊云游戲

2012-06-19 16:11:56

2022-10-21 11:50:04

2017-11-27 11:02:46

高并發(fā)突發(fā)池系統(tǒng)架構(gòu)王者榮耀
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文字幕 亚洲一区 | 国产亚洲精品精品国产亚洲综合 | 国产欧美在线 | 干狠狠 | 国产欧美在线视频 | 理论片免费在线观看 | 久久99网站 | www久久国产 | 91精品久久久 | 成人av影院| 成人欧美一区二区 | 日韩av一区二区在线观看 | 日本视频在线 | 久久新 | 成人超碰 | 亚洲免费视频在线观看 | 一道本不卡视频 | xxxcom在线观看 | 狠狠插狠狠操 | 一区在线播放 | 亚洲成av片人久久久 | 欧美天堂 | 一区二区免费看 | 日本欧美在线 | 亚洲视频一区在线观看 | 色婷婷综合网站 | 国产激情精品 | 999精品在线 | 久久99这里只有精品 | 97伦理电影网 | 精品国产三级 | 91精品国产91久久综合桃花 | 久久久精品视频一区二区三区 | 蜜臀网站 | 久久久久久国产 | h视频免费在线观看 | 欧美中文一区 | 一级片aaa | 毛片av免费在线观看 | 麻豆av片 | 在线免费看毛片 |