自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊為啥打死我也不學編譯這件事

開發(fā) 前端
編譯原理一門比較難的課程,我和很多同學聊的時候,有人說:編譯太抽象了,太枯燥了,還有人說:打死我也不學編譯了(這句話讓我印象極為深刻,直接當了標題)。其實不學編譯對日常工作影響也不大,大家主要把編譯器當做一個工具直接使用,不會去了解內(nèi)部的實現(xiàn)。真正從事編譯器開發(fā)人也非常少。

在上古時代,程序員都用匯編編程,效率低下,非常痛苦。

圖片

只有那些大神才能使用匯編搞大事情。

圖片

軟件業(yè)的繁榮不能只靠幾個大神,還需要千千萬萬的碼農(nóng)。

IBM公司29歲的巴科斯決心改變這種情況。

圖片

這個編程語言就是Fortran,但是當時人們對編譯理論了解不多,開發(fā)工作既復(fù)雜又艱苦。

圖片

這時候,語言學家喬姆斯基對自然語言結(jié)構(gòu)的研究給編譯器帶來了意外之喜。

圖片

圖片

1957年,經(jīng)過三年的努力,F(xiàn)ortran編譯器終于完成。

圖片

突破第一個編譯器以后,高級語言便如雨后春筍般發(fā)展起來

圖片

最為知名,影響力最大的還是C和C++

圖片

編譯器的理論和實踐也逐漸成熟

圖片

隨后甚至出現(xiàn)了生成編譯器的生成器

圖片

圖片

Lex 和 Yacc生成的程序只是編譯器的一部分,編譯器的基本結(jié)構(gòu)通常是分為三段。

圖片

對一個公司來說,當它開發(fā)一個編譯器的時候,很少投入資金研發(fā)多種前端和后端,這就導(dǎo)致無法通用,無法共享。

圖片

后來,開源的GCC編譯器最早打破了這種模式。

圖片

GCC開源,跨平臺,支持多種前端和后端,很快成為Unix和Linux的標準編譯器。

圍繞著GCC,一個編譯王國隱然成形。

圖片

蘋果公司也決定采用GCC編譯自家的Objective-C

圖片

但是Objective-C畢竟是個小眾的語言,隨著時間的推移,蘋果公司提出的需求,GCC逐漸滿足不了了。

圖片

GCC還是個“單體應(yīng)用”,很難嵌入到其他應(yīng)用程序當中。

圖片

就在此時,一個大神橫空出世。

圖片

圖片

圖片

2005年,Chris Lattner加入蘋果,負責蘋果的編譯器,XCode等工具的開發(fā),以及LLVM社區(qū)的發(fā)展。

他不負眾望,把Objective-C搞得風生水起,還開發(fā)了一個叫做Clang的LLVM編譯器前端,支持C、C++和Objective-C。

圖片

模塊化的LLVM吸引了很多語言的加盟

圖片

不僅如此,現(xiàn)在有很多領(lǐng)域都需要編譯技術(shù),但是不需要完整的編譯器,模塊化的LLVM正好可以大放異彩。

圖片

60年間,編譯器從最早的把高級語言轉(zhuǎn)化成機器碼,到專注后端優(yōu)化,終于走到了模塊化這一步,LLVM成了新的王者。

后記:編譯原理一門比較難的課程,我和很多同學聊的時候,有人說:編譯太抽象了,太枯燥了,還有人說:打死我也不學編譯了(這句話讓我印象極為深刻,直接當了標題)。其實不學編譯對日常工作影響也不大,大家主要把編譯器當做一個工具直接使用,不會去了解內(nèi)部的實現(xiàn)。真正從事編譯器開發(fā)人也非常少。

不過學習編譯原理能讓程序員加深對編程語言和計算機系統(tǒng)的理解,有余力的話還是建議大家去看一下。

責任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2023-07-03 22:28:19

6GHz6G技術(shù)

2023-05-15 09:06:39

2018-07-10 08:56:19

編程程序員開發(fā)

2022-02-23 09:52:15

InnoDB數(shù)據(jù)索引

2019-12-20 11:17:35

SerialVersionUID

2017-11-06 10:50:49

服務(wù)器區(qū)域

2015-08-24 08:51:01

程序員讀書

2019-05-06 14:28:09

英特爾處理器架構(gòu)

2013-01-16 09:56:46

程序員跳槽面試

2015-09-16 14:20:25

2023-05-12 17:45:15

MySQL索引排序

2018-05-23 07:03:48

2021-12-14 15:45:27

KubernetesSecretLinux

2015-02-28 10:45:24

App國內(nèi)國外

2017-03-06 10:31:30

醫(yī)療 IT

2022-02-16 07:32:10

性能代碼編程

2021-12-01 10:46:41

保險極客團險元數(shù)據(jù)

2010-10-08 09:29:44

云計算

2021-08-16 10:21:01

AI 數(shù)據(jù)人工智能

2019-08-15 10:33:23

大數(shù)據(jù)IT互聯(lián)網(wǎng)
點贊
收藏

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