新聞中心
在上古時(shí)代,程序員都用匯編編程,效率低下,非常痛苦。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)湘鄉(xiāng),十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
只有那些大神才能使用匯編搞大事情。
軟件業(yè)的繁榮不能只靠幾個(gè)大神,還需要千千萬(wàn)萬(wàn)的碼農(nóng)。
IBM公司29歲的巴科斯決心改變這種情況。
這個(gè)編程語(yǔ)言就是Fortran,但是當(dāng)時(shí)人們對(duì)編譯理論了解不多,開(kāi)發(fā)工作既復(fù)雜又艱苦。
這時(shí)候,語(yǔ)言學(xué)家喬姆斯基對(duì)自然語(yǔ)言結(jié)構(gòu)的研究給編譯器帶來(lái)了意外之喜。
1957年,經(jīng)過(guò)三年的努力,F(xiàn)ortran編譯器終于完成。
突破第一個(gè)編譯器以后,高級(jí)語(yǔ)言便如雨后春筍般發(fā)展起來(lái)
最為知名,影響力最大的還是C和C++
編譯器的理論和實(shí)踐也逐漸成熟
隨后甚至出現(xiàn)了生成編譯器的生成器
Lex 和 Yacc生成的程序只是編譯器的一部分,編譯器的基本結(jié)構(gòu)通常是分為三段。
對(duì)一個(gè)公司來(lái)說(shuō),當(dāng)它開(kāi)發(fā)一個(gè)編譯器的時(shí)候,很少投入資金研發(fā)多種前端和后端,這就導(dǎo)致無(wú)法通用,無(wú)法共享。
后來(lái),開(kāi)源的GCC編譯器最早打破了這種模式。
GCC開(kāi)源,跨平臺(tái),支持多種前端和后端,很快成為Unix和Linux的標(biāo)準(zhǔn)編譯器。
圍繞著GCC,一個(gè)編譯王國(guó)隱然成形。
蘋果公司也決定采用GCC編譯自家的Objective-C
但是Objective-C畢竟是個(gè)小眾的語(yǔ)言,隨著時(shí)間的推移,蘋果公司提出的需求,GCC逐漸滿足不了了。
GCC還是個(gè)“單體應(yīng)用”,很難嵌入到其他應(yīng)用程序當(dāng)中。
就在此時(shí),一個(gè)大神橫空出世。
2005年,Chris Lattner加入蘋果,負(fù)責(zé)蘋果的編譯器,XCode等工具的開(kāi)發(fā),以及LLVM社區(qū)的發(fā)展。
他不負(fù)眾望,把Objective-C搞得風(fēng)生水起,還開(kāi)發(fā)了一個(gè)叫做Clang的LLVM編譯器前端,支持C、C++和Objective-C。
模塊化的LLVM吸引了很多語(yǔ)言的加盟
不僅如此,現(xiàn)在有很多領(lǐng)域都需要編譯技術(shù),但是不需要完整的編譯器,模塊化的LLVM正好可以大放異彩。
60年間,編譯器從最早的把高級(jí)語(yǔ)言轉(zhuǎn)化成機(jī)器碼,到專注后端優(yōu)化,終于走到了模塊化這一步,LLVM成了新的王者。
后記:編譯原理一門比較難的課程,我和很多同學(xué)聊的時(shí)候,有人說(shuō):編譯太抽象了,太枯燥了,還有人說(shuō):打死我也不學(xué)編譯了(這句話讓我印象極為深刻,直接當(dāng)了標(biāo)題)。其實(shí)不學(xué)編譯對(duì)日常工作影響也不大,大家主要把編譯器當(dāng)做一個(gè)工具直接使用,不會(huì)去了解內(nèi)部的實(shí)現(xiàn)。真正從事編譯器開(kāi)發(fā)人也非常少。
不過(guò)學(xué)習(xí)編譯原理能讓程序員加深對(duì)編程語(yǔ)言和計(jì)算機(jī)系統(tǒng)的理解,有余力的話還是建議大家去看一下。
分享文章:聊聊為啥打死我也不學(xué)編譯這件事
當(dāng)前網(wǎng)址:http://m.fisionsoft.com.cn/article/dpshdoh.html


咨詢
建站咨詢
