備戰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





66會員
61內容數
留言0
查看全部
發表第一個留言支持創作者!
dkdk12358的沙龍 的其他內容
我相信所有在看這篇的人 也許是緊張的父母、也許是身為高中生的你 回頭看看我自己的升學路程,我是多麼希望當時有 APCS 在繼續往下之前,不論你有沒有學過程式 我希望你先試著回答以下三個的題目 以下程式碼執行之後會在螢幕上出現 1,試問我要如何更動可以變成在螢幕上出現10? int a =
我相信所有在看這篇的人 也許是緊張的父母、也許是身為高中生的你 回頭看看我自己的升學路程,我是多麼希望當時有 APCS 在繼續往下之前,不論你有沒有學過程式 我希望你先試著回答以下三個的題目 以下程式碼執行之後會在螢幕上出現 1,試問我要如何更動可以變成在螢幕上出現10? int a =
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
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
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
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
美國喜劇電影《貼背戰》是一部以新聞報導真實事件改編的作品,故事敘述從年輕玩到大的五位好朋友,在每年五月裡都會玩「鬼抓人」的遊戲,不惜任何代價的抓到對方,其中從未被抓到五位朋友中最厲害的傑瑞,準備要舉辦結婚典禮,四位兄弟認為這是一舉擊敗他的好機會,卻未料到傑瑞以做好逃跑的準備。