《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 為什么每個程序員都應學習代碼編譯器知識

為什么每個程序員都應學習代碼編譯器知識

2015-09-18
關鍵詞: 程序員 編譯器

  所有優秀的計算機科學學院都提供了編譯器課程,但是相對比較少的學校把它作為本科課程的必修部分。這篇文章回答了這個問題:為什么需要學習編譯器知識?即使你從沒打算過編寫編譯器。
  我寫這篇文章的其中一個原因是,盡管我在讀本科時很喜歡編譯器課程,但是我幾乎看不到它的實際作用。大多數資料看起來要么簡單易懂,要么很深奧(事實上,我找到的大部分編譯器資料都是很枯燥的。)無論怎樣,我用了幾年時間總結了為什么這類課程會如此有用的實際原因。原因如下。
  分析器和解析器無處不在
  嚴謹的程序員不得不去了解分析器和解析器,因為我們不會總是只寫一些小程序。每次你寫一個可擴展的程序或處理一種新類型的輸入文件,你都需要了解它們(分析器和解析器)。格林斯潘第十定律:
  “任何C或Fortran程序復雜到一定程度之后,都會包含一個臨時的、只有一半功能的、不完全符合規格的、充滿bug的、運行速度很慢的Common Lisp實現。”
  我們花費如此多的時間在這些事情上,我們可以使用一次性的小技巧來做這些事情的每一個,或者我們利用60年的理論和實際知識去解決問題,并把它做對。重要的是:你應該什么時候借用已存在的代碼或者使用已存在的工具?理論知識在什么時候可以提供幫助?哪些語言設計原則可以運用在我們日常使用的小語言?
  你能更好地編寫正確的代碼
  編譯器應該把輸入的語言正確地翻譯成合法的程序。為了達到這個目標,編譯器開發者必須了解整個輸入語言,包括一些普通程序員沒見過的罕見問題。這個理解過程是通往程序語言本質的重要一步,它和我們平時寫代碼時所看到的不一樣。舉個例子,我在學習了順序點(sequence points),未定義行為(undefined behaviors),和常用的算術轉換的細節后,完全改變了我對C語言的理解。C編譯器編寫者已經掌握這些概念了,但大多數初級和中級程序員都不知道這些概念。毫不夸張地說,一旦你知道語言的本質,你會以不同地方式和更準確地思考這個語言。這適用于任何的語言,特別是像C和C++這些語義不清晰的語言。
  你可以編寫更快的代碼
  通過了解編譯器,你可以很清晰地知道哪些優化是編譯器可以優化的,和哪些是編譯器不能進行優化的,無論他們看起來是多么的合理和簡單。你將會學到哪類代碼通常會建造最佳代碼塊,為什么會這樣和這些代碼做了什么。你會知道為什么一些代碼可以擁有更好的性能,比如使用一半寄存器組緩存濾波系數一半寄存器組緩存樣本的FIR濾波器,它和使用普通優化器實現的不一樣。你和你喜歡的編譯器是一個能創建快速代碼的團隊,你可以使用它高效地工作,或者使用提前優化等無意義的技巧來修改它。
  其次,編譯器后端是與目標架構密切關聯的,當然,現代的架構都盡量提供匯編程序員友好的平臺,而且離著不遠了。通過理解編譯器后端和它為什么是這樣產生代碼的,你會對計算機架構的操作有更好的理解。
  總結
  編譯器(理論上)有三部分:
  1.語言相關的前端(分析,類型檢測)
  2.與語言和目標無關中端(優化))
  3.目標相關的后端(生成機器代碼)
  在這篇文章里,我已經試圖說服你們,理解編譯器的每一部分都是有價值的–即使你將來不會實現或者修改它們。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久免费高清视频| 欧美午夜精品久久久| 一区二区三区视频在线| 亚洲第一网站| 欧美诱惑福利视频| 午夜精品久久久久久久99热浪潮 | 黄色精品一区| 国产一区二区三区久久悠悠色av | 亚洲精品欧美日韩专区| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美亚洲不卡| 欧美视频亚洲视频| 欧美日韩中字| 国产精品高潮呻吟久久| 国产精品久久久久久超碰| 国产精品久久久久久超碰 | 亚洲精品一二| 在线视频一区观看| 亚洲午夜精品在线| 亚洲影院免费| 欧美一区1区三区3区公司| 欧美亚洲网站| 久久激情五月激情| 欧美 日韩 国产 一区| 欧美电影免费网站| 欧美日韩一区二区三区四区在线观看 | 欧美性猛交xxxx乱大交蜜桃| 国产精品嫩草99av在线| 国产欧美日韩综合| 国内成人精品视频| 亚洲激情在线观看| 在线亚洲高清视频| 亚洲午夜成aⅴ人片| 性色av一区二区三区红粉影视| 欧美一区二区性| 亚洲三级电影全部在线观看高清| 夜夜嗨av色综合久久久综合网| 亚洲性视频网址| 欧美中文在线字幕| 免费观看一级特黄欧美大片| 欧美日韩精品综合在线| 国产精品一二三| 国产一区99| 最新国产の精品合集bt伙计| 在线一区二区日韩| 欧美亚洲日本网站| 亚洲精选一区| 午夜亚洲视频| 美女视频黄a大片欧美| 欧美日韩国产精品| 国产亚洲欧美日韩精品| 亚洲激情视频网站| 亚洲一区二区三区四区中文| 亚洲国产精品久久久| 亚洲性色视频| 另类av一区二区| 国产精品成人免费视频| 狠狠干综合网| 一区二区av在线| 久久精品国产精品亚洲| 亚洲视频1区2区| 久久婷婷国产综合国色天香| 欧美伦理影院| 国产亚洲日本欧美韩国| 艳妇臀荡乳欲伦亚洲一区| 久久国产欧美| 亚洲一区二区高清视频| 久久亚洲免费| 国产精品久久久久高潮| 亚洲国产精品美女| 亚洲欧美精品在线| 一区二区欧美视频| 久久人人爽人人爽爽久久| 欧美视频在线视频| 在线免费精品视频| 性视频1819p久久| 亚洲在线观看视频网站| 欧美精品成人| 狠狠色狠狠色综合日日91app| 一区二区三区久久精品| 亚洲激情av| 欧美中文在线字幕| 国产精品福利久久久| 亚洲黄色免费网站| 久久国内精品自在自线400部| 亚洲免费婷婷| 欧美另类专区| **欧美日韩vr在线| 香蕉久久夜色精品国产| 亚洲综合电影| 欧美日韩免费高清| 亚洲激情另类| 最新亚洲一区| 久久久欧美精品| 国产精品亚洲视频| 一区二区三区国产| 一区二区三区www| 欧美3dxxxxhd| 狠狠色伊人亚洲综合成人| 亚洲男人av电影| 亚洲小视频在线观看| 欧美日韩国产综合久久| 亚洲国产女人aaa毛片在线| 久久精品盗摄| 久久精品五月婷婷| 国产日产欧产精品推荐色| 亚洲香蕉在线观看| 亚洲伊人一本大道中文字幕| 欧美日韩99| 亚洲精品国产欧美| 日韩一级黄色av| 欧美国产综合视频| 亚洲高清电影| 亚洲欧洲日韩综合二区| 欧美sm重口味系列视频在线观看| 伊甸园精品99久久久久久| 欧美在线视频全部完| 久久久久久久久久久久久女国产乱 | 亚洲午夜av在线| 欧美日韩午夜在线| 99精品国产福利在线观看免费| 一本一本久久| 欧美日韩一区二区三区免费看| 亚洲精品日韩在线观看| 制服丝袜激情欧洲亚洲| 欧美视频中文一区二区三区在线观看| 亚洲精品永久免费| 亚洲视频成人| 国产精品九色蝌蚪自拍| 亚洲欧美第一页| 久久久久高清| 精品成人国产| 亚洲精品欧美| 欧美日韩国产成人在线| 一区二区三区欧美视频| 亚洲欧美激情精品一区二区| 国产精品亚洲欧美| 久久精品国产第一区二区三区最新章节| 蜜桃伊人久久| 亚洲精品乱码视频| 亚洲一二三区视频在线观看| 国产精品羞羞答答| 久久国产免费| 欧美精品videossex性护士| 99视频精品全国免费| 欧美一区二区黄| 狠狠色狠狠色综合人人| 亚洲精品一区二区三区福利| 欧美日本一区二区高清播放视频| 一本色道久久综合亚洲精品小说 | 久久精品欧美日韩精品| 国内精品99| 99精品国产一区二区青青牛奶| 欧美日韩免费观看一区| 亚洲免费影视第一页| 久久婷婷亚洲| 亚洲精品视频免费在线观看| 亚洲欧美视频在线| 韩国成人精品a∨在线观看| 日韩一级免费观看| 国产精品一区毛片| 亚洲激情在线观看视频免费| 欧美视频在线观看一区二区| 久久本道综合色狠狠五月| 欧美激情按摩| 亚洲一区精彩视频| 另类天堂视频在线观看| 一区二区三区高清在线| 久久综合给合| 夜夜嗨av一区二区三区四区| 久久九九热re6这里有精品| 亚洲精品日韩在线观看| 久久精品国产一区二区三区| 亚洲精品久久久久久久久| 欧美影院午夜播放| 亚洲精品视频在线看| 久久精品成人一区二区三区| 91久久精品国产91久久| 性久久久久久久久久久久| 亚洲国产成人高清精品| 午夜亚洲性色视频| 亚洲精品乱码久久久久久蜜桃91 | 亚洲永久字幕| 亚洲成色999久久网站| 亚洲欧美大片| 亚洲国产高清在线| 欧美一区二区成人6969| 亚洲精品久久久久久久久| 久久久久国内| 一区二区三区视频在线观看| 噜噜噜噜噜久久久久久91 | 欧美日韩亚洲一区二区三区在线观看| 欧美专区在线观看| 国产精品高潮呻吟| 亚洲免费观看高清完整版在线观看熊| 国产一区二区三区四区| 亚洲一区二区三区高清| 亚洲成人在线视频网站| 久久国产婷婷国产香蕉| 一区二区三区日韩精品视频|