備戰APCS (2) -- 什麼是Compiler/編譯器?

閱讀時間約 2 分鐘

在聊解什麼是 Compiler 之前

我們先建立一個共識:

“所有人寫的程式會變成指令

每一道指令是由CPU執行

而CPU所能理解的指令類型有限”


每一顆 CPU 在設計的時候

其實他有固定的、能理解的指令

舉例來說,某顆 CPU 可能只認得 100 道指令

所以所有的程式,無論你寫了幾千甚至幾百萬行

它終究會變成100道指令的某種排列組合

這樣說好了,它有點像密碼鎖

密碼鎖雖然只有 0-9 但你只要按得夠多次

它就會變成一個很長、很難破解的東西

又或者你可以把它想像成是樂高積木

雖然樂高積木的『類型』有限

但你只要發揮創意就能夠把它變成各式各樣的東西

所以你不論是寫 C/C++/Python/Scala/Java....

它終究終究終究是一道一道的CPU指令


那麼這個時候也許你會出現數個問題:

  • 為什麼不能直接寫指令呢?
  • C/C++/Python/Scala/Java...等等的程式語言又是如何變成指令的呢?

首先,你可以寫指令,這是絕對可行的

只是這代表兩件事:

  1. 你要對你所使用的CPU很熟很熟
  2. 你寫的指令串只要換了一種CPU就沒辦法用了

這有點像是你家如果有十個密碼鎖

每個密碼鎖的密碼都不一樣,如果你很熟很熟你也是可以每個都打開的

但是這會變得很麻煩~於是很快的...資公領域就發展出一種東西叫 Compiler(編譯器)

它的功能就是:把 C/C++ 寫的程式變成一道一道的指令給 CPU 執行

那麼你就只要對 C/C++ 很熟就好了,其他的事情就交給 Compiler 做

而 Compiler 的通常是由非常熟悉CPU指令的人所寫的

所以 CPU 指令只要有少數幾個人熟就好,其他人只要用 Compiler 就可以把程式碼轉成指令

試想,市面上有成千上萬種 CPU,而你寫的程式碼可以在他們全部上面跑

這可以省去多少時間

PS 程式碼 ---> (經過編譯器)-----> CPU可以執行的執行檔

所以簡單的來講:

Compiler 就是把程式語言變成CPU指令的工具

當我們說 “C-compiler”的時候,我們的意思是能夠暸解 C 語言並且把它轉成 CPU 指令的編譯器

而當我們說 "Rust-Compiler"的時候,我們是只能夠暸解 Rust 語言並且把它轉成 CPU 指令的編譯器

但就像我前面說的,其實CPU可能有成千上萬種,編譯器怎麼知道你是要編譯給誰用的呢?

通常通常,如果我們在 A 這種 CPU 上編譯的結果就是給 A 這種 CPU 用的

但少數也會有在 A CPU 上編譯的結果給 B CPU 用的狀況,這個過程我們稱之為 Cross-Compile 但一般人應該是用不到才對

講了這麼多,希望你對編譯器有點想法

那以下就是最最最普通使用 gcc (C-compiler)的時候會用的 command:

gcc -o main main.c





avatar-img
67會員
61內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
dkdk12358的沙龍 的其他內容
我相信所有在看這篇的人 也許是緊張的父母、也許是身為高中生的你 回頭看看我自己的升學路程,我是多麼希望當時有 APCS 在繼續往下之前,不論你有沒有學過程式 我希望你先試著回答以下三個的題目 以下程式碼執行之後會在螢幕上出現 1,試問我要如何更動可以變成在螢幕上出現10? int a =
我相信所有在看這篇的人 也許是緊張的父母、也許是身為高中生的你 回頭看看我自己的升學路程,我是多麼希望當時有 APCS 在繼續往下之前,不論你有沒有學過程式 我希望你先試著回答以下三個的題目 以下程式碼執行之後會在螢幕上出現 1,試問我要如何更動可以變成在螢幕上出現10? int a =
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在6/30追報(還特別貴,一次2000)的多益測驗正式上場前,做個記錄。 為了符合公司海外受訓資格(TOEIC LR 550,TOEIC speaking 90)要求,必須在7月底前取得語言成績才得以在9月順利前往休士頓受訓一個月。 從沒想過有機會能夠以公費出國受訓,自然也不會把多益當成回事,雖
Thumbnail
有鑒於台海情勢,一直都很想上民防課程,終於在前一陣子報名到秒殺黑熊學院課程。 我們一直在吵藍綠白,但是要面對的已經不是你賭爛哪個顏色,而是國家安全問題。 台灣越來越危險是事實,跪舔是無法換來任何保證反而讓掠奪者更有信心(當你連大陸食品都不敢吃的情況下,憑什麼相信他們保證你會安全?跟你掛保證的人,
Thumbnail
訓練點滴-穩紮穩打與求新求變 過往在馬拉松賽事的紀錄,多以賽事本身及整個訓練週期的大致歷程為主,並不會特別在訓練期內做統整性的文字記錄。有鑑於挑戰破三是個很大的挑戰,希望透過定期紀錄的過程,更全盤性的檢視訓練,並且在賽事結束後,無論成敗,都有詳細的紀錄可以好好檢視,進而達到改善的目的。 目前規劃
Thumbnail
55.備戰 音樂: Vindu - Daisho (第書) 為了當貿易的中繼站,普羅米修斯的巴比倫成也開始新建屬於存放封罐用的地方,而原本位於巴比倫成旁邊的菩提根也派出人手來幫忙興建,他們將原本的「魔法競技場」當成重建的地點,許多沒見過的人物全都跑了過來。 阿波羅:「這裡可是位於中土最大的貿易出入口
Thumbnail
貼背戰其實講述的就是我們小時候也常玩的遊戲--鬼抓人啊!我很驚訝的是,電影是真實事件改編的,影片的最後也有現實生活中,真正主角們的影片和照片,說真的,能夠這樣陪你玩到大玩到老的朋友,人生來這一遭不浪費啊! 故事從最執著此遊戲的中堅份子(自稱)--霍吉,為了集結所有好友要再玩一次遊戲,辭掉了獸醫的優質
Thumbnail
漫長的 2020 年即將進入尾聲,無論從什麼角度來看,新的一年始終帶給大家更多光明的希望,沒有人不期待 2021 的來臨,但是,在 2021 年到來時,你做好準備了嗎? 對於經營者而言,每年度的節慶行銷不會有太大的差異,但 SimplyBook.me 看到許多店家並未與數位工具整合推廣,仍透過 Fa
Thumbnail
撰寫:陳鄭為 罷免高雄市長韓國瑜選舉投票紛擾多時,終於在6月6日劃下句點,高雄市民以93萬9,090張的同意罷免票,宣告“韓流”終結。一如輸家在每一場選舉過後的處理,優雅轉身下台、找戰犯,以及面對接下來該怎麼辦,是必須要有的流程。 韓國瑜確定解職,代表高雄市長補選緊接而來,相較於好整以暇的民進黨
Thumbnail
現今的中東半島猶如火藥庫一般,每天都會有傷亡的消息出。 這一百年內,中東發生無數的戰爭,有些仍舊持續進行當中,這些戰事維持許久,遲遲無法結束
Thumbnail
美國喜劇電影《貼背戰》是一部以新聞報導真實事件改編的作品,故事敘述從年輕玩到大的五位好朋友,在每年五月裡都會玩「鬼抓人」的遊戲,不惜任何代價的抓到對方,其中從未被抓到五位朋友中最厲害的傑瑞,準備要舉辦結婚典禮,四位兄弟認為這是一舉擊敗他的好機會,卻未料到傑瑞以做好逃跑的準備。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在6/30追報(還特別貴,一次2000)的多益測驗正式上場前,做個記錄。 為了符合公司海外受訓資格(TOEIC LR 550,TOEIC speaking 90)要求,必須在7月底前取得語言成績才得以在9月順利前往休士頓受訓一個月。 從沒想過有機會能夠以公費出國受訓,自然也不會把多益當成回事,雖
Thumbnail
有鑒於台海情勢,一直都很想上民防課程,終於在前一陣子報名到秒殺黑熊學院課程。 我們一直在吵藍綠白,但是要面對的已經不是你賭爛哪個顏色,而是國家安全問題。 台灣越來越危險是事實,跪舔是無法換來任何保證反而讓掠奪者更有信心(當你連大陸食品都不敢吃的情況下,憑什麼相信他們保證你會安全?跟你掛保證的人,
Thumbnail
訓練點滴-穩紮穩打與求新求變 過往在馬拉松賽事的紀錄,多以賽事本身及整個訓練週期的大致歷程為主,並不會特別在訓練期內做統整性的文字記錄。有鑑於挑戰破三是個很大的挑戰,希望透過定期紀錄的過程,更全盤性的檢視訓練,並且在賽事結束後,無論成敗,都有詳細的紀錄可以好好檢視,進而達到改善的目的。 目前規劃
Thumbnail
55.備戰 音樂: Vindu - Daisho (第書) 為了當貿易的中繼站,普羅米修斯的巴比倫成也開始新建屬於存放封罐用的地方,而原本位於巴比倫成旁邊的菩提根也派出人手來幫忙興建,他們將原本的「魔法競技場」當成重建的地點,許多沒見過的人物全都跑了過來。 阿波羅:「這裡可是位於中土最大的貿易出入口
Thumbnail
貼背戰其實講述的就是我們小時候也常玩的遊戲--鬼抓人啊!我很驚訝的是,電影是真實事件改編的,影片的最後也有現實生活中,真正主角們的影片和照片,說真的,能夠這樣陪你玩到大玩到老的朋友,人生來這一遭不浪費啊! 故事從最執著此遊戲的中堅份子(自稱)--霍吉,為了集結所有好友要再玩一次遊戲,辭掉了獸醫的優質
Thumbnail
漫長的 2020 年即將進入尾聲,無論從什麼角度來看,新的一年始終帶給大家更多光明的希望,沒有人不期待 2021 的來臨,但是,在 2021 年到來時,你做好準備了嗎? 對於經營者而言,每年度的節慶行銷不會有太大的差異,但 SimplyBook.me 看到許多店家並未與數位工具整合推廣,仍透過 Fa
Thumbnail
撰寫:陳鄭為 罷免高雄市長韓國瑜選舉投票紛擾多時,終於在6月6日劃下句點,高雄市民以93萬9,090張的同意罷免票,宣告“韓流”終結。一如輸家在每一場選舉過後的處理,優雅轉身下台、找戰犯,以及面對接下來該怎麼辦,是必須要有的流程。 韓國瑜確定解職,代表高雄市長補選緊接而來,相較於好整以暇的民進黨
Thumbnail
現今的中東半島猶如火藥庫一般,每天都會有傷亡的消息出。 這一百年內,中東發生無數的戰爭,有些仍舊持續進行當中,這些戰事維持許久,遲遲無法結束
Thumbnail
美國喜劇電影《貼背戰》是一部以新聞報導真實事件改編的作品,故事敘述從年輕玩到大的五位好朋友,在每年五月裡都會玩「鬼抓人」的遊戲,不惜任何代價的抓到對方,其中從未被抓到五位朋友中最厲害的傑瑞,準備要舉辦結婚典禮,四位兄弟認為這是一舉擊敗他的好機會,卻未料到傑瑞以做好逃跑的準備。