當前位置:首頁 > 公眾號精選 > 程序喵大人
[導讀]最近芯片公司挺火的,編譯器崗位突然多了起來。不知道什么時候開始,編譯原理總被人說成是用來炫耀的“屠龍技”,對此我不敢茍同,編譯原理實打?qū)嵉氖且婚T對你我工作大有裨益的技術(shù)。?編譯技術(shù)簡單點說,就是把高級語言的代碼翻譯成為計算機可以理解和運行的二進制代碼的技術(shù)。我們經(jīng)常會碰到需要編譯...

最近芯片公司挺火的,編譯器崗位突然多了起來。不知道什么時候開始,編譯原理總被人說成是用來炫耀的“屠龍技”,對此我不敢茍同,編譯原理實打?qū)嵉氖且婚T對你我工作大有裨益的技術(shù)。
編譯技術(shù)簡單點說,就是把高級語言的代碼翻譯成為計算機可以理解和運行的二進制代碼的技術(shù)。我們經(jīng)常會碰到需要編譯技術(shù)的場景,比如編寫界面模板引擎,為項目編寫各種各樣的 DSL,深度理解甚至開發(fā)出 Spring、Hibernate、阿里巴巴 Druid 這樣的工具。 除此之外,解析用戶輸入,防止代碼注入,為前端工程師提供像 React 那樣的 DSL,像 TypeScript 那樣把一門語言翻譯成另一門語言,像 CMake 和 Maven 那樣通過配置文件來靈活工作,運維工程師分析日志文件等等高級別的需求,都會用到編譯技術(shù)。 除了實踐性強,編譯技術(shù)在求職中也同樣重要。不少大廠在招聘時,都會出一些涉及底層機制、有難度的面試題。 說起來,我很早就被編譯器種了草,當時下定決心學,還是因為想加入 tvm 的社區(qū),發(fā)現(xiàn)自己這個短板必須得補上。結(jié)果跟大部分朋友一樣,遇到了倆最常見的問題:沒人教、怕看不懂。

如何深入理解并實踐編譯原理?

如今的快餐式學習,雖然會幫助個人在短期內(nèi)迅速了解一門技術(shù),但程序員想要保持長期的競爭力,學習底層知識并進行實踐,提升專業(yè)素養(yǎng)必不可少。 直到后來,我發(fā)現(xiàn)了下面這張宮哥做的腦圖,圖上系統(tǒng)梳理了關(guān)于編譯技術(shù)最核心的概念、理論和算法,收藏價值挺大,我已經(jīng)存了好幾年了:
這張圖來自極客時間的專欄《編譯原理之美》,它在極客時間上訂閱量已經(jīng)超過 1 萬 3 了,口碑相當不錯。 專欄作者是宮文學,他是北京物演科技 CEO,也是國內(nèi)最早做 BPM(流程管理平臺)和 BI 平臺(大數(shù)據(jù)平臺)的創(chuàng)業(yè)者之一,第一個公司賣給了上市公司,第二個在新三板上市,后來還做過電子表單和快速開發(fā)平臺,這些經(jīng)歷與成果都跟編譯技術(shù)密不可分。當然,他還熟知各種語言編譯器的實現(xiàn)機制,實戰(zhàn)經(jīng)驗非常豐富。 我當時還順藤摸瓜找到了他在極客時間的另外一個專欄《編譯原理實戰(zhàn)》專欄,馬上入手了!跟著學下來,收獲真的很大,畢竟把知識與實踐相結(jié)合,才讓編譯技術(shù)真正變成自己手中的高階技能! 剛好兩個編譯原理專欄有聯(lián)合活動,售價 ¥258(129 129),現(xiàn)在到手只要半價 ¥129,我這個月都推薦過好幾次了,每次買的朋友都很多,真的非常劃算,再次推薦給你們!


掃碼立即半價入手 售價 ¥258,立省 ¥129優(yōu)惠僅 50 份,賣完恢復原價

他是如何講編譯原理與實戰(zhàn)的?

不用擔心看不懂,不論你是什么語言的背景都能學宮哥的《編譯原理之美》就是為了帶著大家去了解各門語言背后的知識,所以課程里選了 C 語言、java、javascript 等幾門語法看上去都很像的語言來做例子,保證你不會有陌生感,也不會因為掌握的具體語言而卡殼。 宮哥主要從前端與后端兩個層面來講解編譯原理的核心技術(shù)點,用具體的案例帶你理解抽象的原理,幫你建立信心,克服畏難情緒,讓你在這個過程中一步步趟過雷區(qū),在工作中真正用到編譯技術(shù)。


宮哥將編譯原理專欄內(nèi)容分成三部分: 第一部分:實現(xiàn)一門腳本語言主要聚焦編譯器前端技術(shù),通過具體實例,帶你了解詞法分析、語法分析、語義分析的原理,實現(xiàn)一門腳本語言,并用工具提升效率。 第二部分:實現(xiàn)一門編譯型語言主要聚焦編譯器后端技術(shù),帶你了解如何生成目標代碼和對代碼進行優(yōu)化,并引入 LLVM 工具,最后生成可執(zhí)行的文件能支持即時編譯,并經(jīng)過了多層優(yōu)化。 第三部分:面向未來的編程語言人工智能與編譯技術(shù)結(jié)合是否會出現(xiàn)人工智能編程?這個模塊將對編譯技術(shù)的發(fā)展趨勢進行分析,幫你更好地把握未來技術(shù)發(fā)展的脈搏。 有很多朋友,盡管理解了編譯原理的理論和概念,但難以做到知行合一,其實,要做到這一點,無非要是搞清楚我們用的編譯器,到底是怎么寫出來的。 只有深入了解現(xiàn)代語言編譯器的結(jié)構(gòu)、采用的算法和設(shè)計上的權(quán)衡,在用編譯技術(shù)完成一個項目時,你才知道在什么地方該用什么技術(shù)——掌握更多編譯器的設(shè)計和實現(xiàn)思路,作為項目的決策依據(jù) 在專欄《編譯原理實戰(zhàn)》中,宮哥系統(tǒng)梳理了編譯原理的核心基礎(chǔ)知識,解析 7 大主流語言的編譯器源碼(Java、Java JIT、Python、JavaScript、Julia、Go、MySQL )。通過大量實戰(zhàn)案例講解,帶你掌握真實編譯器的實現(xiàn)機制與關(guān)鍵算法,進而站在更加宏觀的視角,從編程語言的設(shè)計層面理解編譯原理。 看完后對我的提升確實有不小的影響,后來社區(qū)也成功進了,而且我現(xiàn)在知道如何在不同的技術(shù)路線之間做取舍了。最近因為項目需要在回看復習,還收獲了一些新的見解和看法。 在學習這三類模塊中的語言外,實戰(zhàn)中的大部分內(nèi)容,都是他在讀源碼,跟蹤源碼執(zhí)行過程的基礎(chǔ)上梳理出來的。在課程設(shè)計上,他會以研究真實編譯器的運行原理為主要手段,著力于擴大知識版圖,增強實戰(zhàn)能力,從而達到「行萬里路」的目的。



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

PathWave RFPro 與新思科技定制化編譯器相輔相成,可提供無線晶片設(shè)計工作流程所需的整合式電磁模擬工具

關(guān)鍵字: 是德科技 集成電路 編譯器

在MCU開發(fā)和應(yīng)用中,工程師都需要進行MCU的能力測試,通用的做法是用Benchmark(基準)程序來測試。然而,在做基準測試時,編譯器的優(yōu)化能力也在測試結(jié)果中有較為明顯的影響,同一套硬件平臺,選用不同的編譯器和不同的優(yōu)...

關(guān)鍵字: IAR Systems MCU 編譯器

Part1一、讓自己習慣C條款01:視C為一個語言聯(lián)邦C并不是一個帶有一組守則的一體語言:他是從四個次語言(C、Object-OrientedC、Template、STL)?組成的聯(lián)邦政府,每個次語言都有自己的規(guī)約。記住...

關(guān)鍵字: TI 函數(shù) ASPECT 編譯器

星標「嵌入式大雜燴」,一起進步!來源:www.cnblogs.com/Chaobs/p/4510768.html不知道你有沒有想過,某種編程語言的第一個編譯器是怎么來的呢?這不就是“雞生蛋,蛋生雞”的問題嗎?先說最后的結(jié)...

關(guān)鍵字: 編譯器

在嵌入式開發(fā)中,代碼的體積和運行效率非常重要,代碼體積往往和芯片的FLASH、RAM容量對應(yīng),程序的運行效率也要求在相應(yīng)能力的處理器上運行。在大多數(shù)情況下,成熟的開發(fā)人員都希望降低代碼體積、提高代碼運行效率,然而具體該怎...

關(guān)鍵字: IAR Systems 嵌入式開發(fā) 編譯器

關(guān)注星標公眾號,不錯過精彩內(nèi)容作者|strongerHuang微信公眾號?|?嵌入式專欄為了方便大家平時公交、地鐵、外出辦事也能用手機回顧查看文章,我特意用心精選,并分類整理了部分文章:多款優(yōu)秀的支持C、C等多種語言的在...

關(guān)鍵字: 編譯器 編輯器 軟件

↓推薦關(guān)注↓英特爾的長期編譯器專家JamesReinders在一篇博客中透露,他們將在下一代英特爾C/C編譯器中使用LLVM開源基礎(chǔ)架構(gòu);并分享了一些相關(guān)信息?!癓LVM有助于我們實現(xiàn)為英特爾架構(gòu)提供最佳C/C編譯器的目...

關(guān)鍵字: 編譯器 英特爾

點擊上方“小麥大叔”,選擇“置頂/星標公眾號”福利干貨,第一時間送達大家好,我是小麥,上次寫過一篇文章《Keil編譯太慢怎么辦?教你一招,提速10倍?》,減少了中間文件的生成,確實把編譯速度提高了很多,其實沒有從根本上解...

關(guān)鍵字: 編譯器

↓推薦關(guān)注↓英特爾的長期編譯器專家JamesReinders在一篇博客中透露,他們將在下一代英特爾C/C編譯器中使用LLVM開源基礎(chǔ)架構(gòu);并分享了一些相關(guān)信息?!癓LVM有助于我們實現(xiàn)為英特爾架構(gòu)提供最佳C/C編譯器的目...

關(guān)鍵字: 編譯器 英特爾

程序喵大人

185 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉