什麼是C語言的編譯器?從計算機原理的角度談編譯器

2020-12-17 熱愛生活的小龍蝦

相對機器語言和彙編語言,C語言已經算是高級語言了。

相信你們已經知道什麼是機器語言和彙編語言,如果有不知道的朋友可以關注參考編者的另外一篇文章:C語言基礎:二進位和計算機語言雜談(編程新手福利),當然也可以自行百度。

早期的機器語言沒有編譯器的概念,因為機器語言不過是很多的0和1,CPU(處理器)能夠直接識別機器語言,C語言本身是為了提高開發效率而開發出的新語言,語義上幾乎和現實世界表達意思一致,但是這樣高級的語義可就難倒了計算機,它不認識像if-else、while等單詞,那麼計算機怎麼識別C程序的呢,這就引出編譯器的概念了。

編譯器用於將高級語言向低級語言轉化。

C程序寫出來之後要經過編譯,簡單來說就是利用編譯器將C語言.c後綴的源文件編譯成.obj後綴的目標文件,然後在經過連結過程,生成可執行的文件,windows下就會生成一個exe的可執行文件。這個可執行文件就是一個二進位文件。它就能被CPU識別、運行了。

萬變不離其宗,其實所有的高級語言都有類似編譯器作用的東西。比如java的jre、C#的.net framework等都是一樣的作用。因為計算機底層就只能識別0和1,再怎麼高級的語言也無法改變。

好了,就說到這裡,算是對這篇文章C語言初學者該如何選擇編譯器?哪個編譯器好用?標題的糾正吧嘿嘿。

相關焦點

  • C語言編譯器的來源
    現在的學生,學過編譯原理後,只要有點編程能力的都可以實現一個功能簡單的類C語言編譯器。可是問題來了,不知道你有沒有想過,大家都用C語言或基於C語言的語言來寫編譯器,那麼世界上第一個C語言編譯器又是怎麼編寫的呢?這不就是一個「雞和蛋」的問題嗎?
  • 世界上第一個C語言編譯器是怎麼編寫的?它為什麼能夠用C語言編寫?
    所謂C語言編譯器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則這些操作,C語言都是可以實現的。 所以用C語言來做C語言的編譯器是完全可行的。 但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
  • 第一個 C 語言編譯器是怎樣編寫的?
    對於編譯器這種系統軟體,用C語言來編寫是很自然不過的,即使是像Python這樣的高級語言依然在底層依賴於C語言(舉Python的例子是因為Intel的黑客正在嘗試讓Python不需要作業系統就能運行——實際上是免去了BIOS上的一次性C代碼)。現在的學生,學過編譯原理後,只要有點編程能力的都可以實現一個功能簡單的類C語言編譯器。
  • C語言編譯器哪個好_6款好用的C語言編譯器推薦
    C語言編譯器哪個好其實win tc是款很不錯的軟體。去用一下你就知道了,因為我自學c時就是用的那個軟體,真的向你推薦它!
  • C語言編譯器哪個好?6款好用的C語言編譯器推薦
    一些剛開始接觸C語言編譯的網友想下載一款C語言編譯器來使用,不過,網絡上有不少C語言編譯器相關的軟體,讓人很難抉擇。那麼,C語言編譯器哪個好?今天的文章裡,小編給大家整理了6款好用的C語言編譯器推薦給大家,需要下載C語言編譯器的網友,不妨了解一下!
  • (宇宙最強C/C++編譯器)樂創DIY C語言講義​——2.6 GCC的使用
    GCC的軟體,這個GCC又是什麼東西,然後就頓時一臉懵。GCC之前簡單介紹過,它是用來開發GNU C語言的編譯器,這個GNU C說的通俗易懂一些就是Linux底下的C語言開發,之前我們說了,目前市面上的C語言編譯器,要麼是完全不區分C語言和C++的MSVC,要麼是老到掉牙的Borland C,但就Borland C來說吧,它支持的最多也就C89,而且可能還不完全支持,因此在開發的時候會很麻煩,也不建議用。
  • c編譯器so easy,gcc c編譯器生成、使用動靜態庫
    第一章程序開發人員大多接觸過c編譯器,請注意,不要將c編譯器和編輯器弄混淆哦。本文對c編譯器的講解,同樣基於gcc c編譯器,本文主要目的在於對linux環境下gcc c編譯器生成和使用靜態庫和動態庫予以介紹。此外,本文為系列教程第一篇——基本概念篇,之後將帶來另外兩篇。
  • C語言學習:C語言編譯器和IDE的選擇(有資源)
    這就倒逼程式設計師開發出了程式語言,提高自己的生產力;例如彙編、C語言、C++、Java、Python、Go語言等,都是在逐步提高開發效率。至此,編程終於不再是只有極客能做的事情了,不了解計算機的讀者經過一定的訓練也可以編寫出有模有樣的程序。
  • C語言編譯器電腦版
    C語言編譯器電腦版 資訊閱讀 大小: 6.89M 版本: 4.3
  • C語言初學者該如何選擇編譯器?哪個編譯器好用?
    剛開始學C語言,很多人都不知道該如何選擇一個編譯器。C語言相對其他程式語言來說,編譯器比較多,網上眾說紛紜,在這裡,我以親身學習經歷說明新手該如何選擇編譯器。我學習C語言一共只用了兩個編譯器,一個是VC++6.0,另一個是Dev C++。什麼時候用?
  • C語言C++編程學習常用的編譯器
    中國大學的計算機專業學習C語言的必備神器,也算是比較古老的C語言學習工具了。現在的大學計算機二級等級考試依然用的是這個軟體,它支持是編譯標準是C98。不過我認為這款軟體已經過時了,而且現在主流的win7和win8都不兼容這款軟體,所以建議大家不要用,當然如果你是為了應付計算機二級,那就算了,不過這時你得下載兼容性比較好的軟體,不然根本在win7運行不了。
  • C編譯器小家族之C編譯器各顯神通
    C/C++編譯器有哪些?GCCGCC原名GNU C Compiler,後來逐漸支持更多的語言編譯(C++、Fortran、Pascal、Objective-C、Java、Ada、Go等),所以變成了GNU Compiler Collection(GNU編譯器套裝),是一套由GNU工程開發的支持多種程式語言的編譯器。
  • 編譯器 | 五款好用的C/C++編譯器(IDE利器)
    應一些看官老爺的後臺留言需要說一些編譯器和應對的環境,這篇文章屬於編譯器專題,這次我們討論的是的語言: C 和 C++,它們有著許多卓越的特性。後面會帶來不同種類語言的不同使用環境中所使用的編譯器 or IDE。前三個集成 IDE +個 VS 是一些工作中常使用的,後面兩個是一些使用到 C/C++語言的比賽中經常使用的。
  • C/C+編程筆記:C語言的編譯器工作原理
    以gcc編譯器為例子,編譯實際上總共經歷了四個階段 預處理--->編譯--->彙編--->連結
  • 如果你想學C語言,下載哪個編譯器好?
    C語言這個東西現在用的人很少,一般都是用java的多,不過對於我來講,我一看C語言就親切,就想寫,工作上不一定能用得到,但是C語言作為作為所有高級語言的爸爸,多學一點有助於理解一些底層的東西,下面我就跟大家說一下想學C語言下載哪個編譯器好。
  • 我不是編譯器專家
    就最後研究的領域,我是一個程式語言(PL)研究者,從更廣的角度來看,我是一個計算機科學家。有人聽了「科學家」一詞總是誤以為我在抬高自己,而在我心目中「科學家」僅僅是一個職業,就像「廚師」一樣,並不說明一個人的水平和地位。PL 研究者被叫做「計算機科學家」是很恰當的,因為 PL 領域研究的其實不只是語言,而是計算的本質。
  • 高效的C編程之:C編譯器及其優化
    本章首先從ARM編譯器及其優化入手,講解C編譯器在優化代碼時所碰到的一些問題。理解這些問題,將有助於編寫出在提高執行速度和減少代碼尺寸方面更高效的C原始碼。本章假定讀者熟悉C語言,並且有一些彙編語言編程方面的知識。有關ARM編程的詳細信息,請參閱本書的相關章節。
  • 先有C語言還是先有的編譯器?這是一個雞與蛋的問題
    對於編譯器這種系統軟體,用C語言來編寫是很自然不過的,即使是像Python這樣的高級語言依然在底層依賴於C語言(舉Python的例子是因為Intel的黑客正在嘗試讓Python不需要作業系統就能運行——實際上是免去了BIOS上的一次性C代碼)。現在的學生,學過編譯原理後,只要有點編程能力的都可以實現一個功能簡單的類C語言編譯器。
  • 初學C語言用什麼編譯器
    01話不多說,直接上先給大家看編譯器截圖相信大家也看到了,是一個雲端的編譯器我對現在的所有的軟體包括遊戲,我希望他們都在雲端實現,是要求我有足夠的寬帶麻煩沒有電腦還真操作不了(除非用手機遠程連接電腦)打發十分哪能這麼隨意切換語言了?比sublime 好用03缺點就是你的網速解決了網速問題,也就沒有問題了,不過網速問題有點難解決,如果你解決了,可以在評論區告訴大家。
  • Python編譯器與解釋器
    那麼為什麼全世界不管什麼國家,什麼歷史,什麼文化水平基本都是用十進位作為基本進位呢?是因為我們人有10個手指頭,掰起來最方便!我們對十進位有著天然的友好度。那麼對於計算機呢?計算機不是人,沒有10個手指頭可以掰,所以它用不了十進位。那麼它用幾進位?二進位!二進位是用0和1兩個數碼來表示的數,也就是形如010101010的樣子。