什么是編譯器(編程軟件)?
總的來說,你所謂的編程語言其實就是軟件,叫做編譯器,它讀取文本文件,做了許多處理,並生成二進制文件。大白話的講,就是負責“翻譯”或“解釋”代碼的一個軟件!
編譯器可以是任何一個能將一個文本翻譯為另一個文本的程序。比如C語言、C++這樣的程序,當我們一行一行寫下代碼后,需要經過編譯器的“翻譯”才能變成可執行程序才可以執行。才可以實現代碼到程序的轉變,而這一切都需要編譯器幫我們去做。
編譯器做了什么?
簡單來說,編譯器讀取源代碼生成二進制文件。由於直接將復雜的、人類可讀的代碼轉為一和零是非常復雜的,編譯器在程序可運行前有幾個步驟要做:
讀取你給它的源代碼中的獨立字符。
將字符分類為字,數字,符號和操作符。
獲取已排序完的字符,並通過將它們與模式匹配相匹配和生成操作樹來確定它們嘗試進行的操作。
迭代上一步中生成操作樹中的每一個操作,並生成等效的二進制文件。
當我說編譯器立刻從一個操作樹轉化到二進制文件時,它實際生成了匯編代碼,匯編代碼隨后被匯編/編譯成二進制文件。匯編像是更高級的,人類可讀的二進制文件。
那么問題來了,我們學編程,比如C語言,又是32個關鍵字、又是各種函數,還有各種語法,學這些不就為了寫代碼讓電腦執行嗎?為什么還要編譯器“翻譯”呢?
答案很簡單,因為:電腦(其實主要就是CPU)只認識0或1這兩個數字。所有寫的一切代碼,都需要編譯器幫我們編譯也就是翻譯成大量的01代碼,才是CPU的“母語”,CPU才會熟練的幫我們飛一般的幫速度執行。
那么你可能又會問,既然CPU只認識0和1,反正也要翻譯一遍,那我們還學什么編程,學什么語法,直接用漢語寫命令寫代碼不行嗎?
答案是:當然可以,比如易語言,或號稱一句話就可以完成一個功能的swift語言等等。
無論哪種語言,想要最終成為可執行的程序,都需要編譯器幫我們去編譯才可以實現! 無非是語言的高級與否,影響編譯器翻譯量多少而已!源碼要運行,必須先轉成二進制的機器碼。
以C語言為例,常見的編譯器有:
Windows系統下VC/VS系列編譯器為cl.exe
Linux系統下原生自帶的gcc編譯器
Max系統下的LLVM/CLANG編譯器
這些編譯器的使用方式常常在DOS或命令提示符下,通過一步步的命令進行操作,需要經過編譯、鏈接才會生成對應的可執行文件
什么是IDE(集成開發環境)?
簡單講,就是比編譯器功能更全面更強大界面更友好的軟件
我們實際學習和開發過程中大家聽到或見過的基本都是IDE(集成開發環境),比如VC6.0、VS2012、CodeBlocks等等,他們的核心還是前面提到的編譯器,只不過為了大家方便,全部免去命令形式的操作,取而代之的友好的界面,一鍵編譯等方便的操作,還額外提供包括代碼高亮、代碼調試、項目管理等高級功能
常見的編譯器有:
TurboC2.0
VC6.0
VS系列(比如VS2012)
CodeBlocks
DevCpp
C-Free
等等
小編推薦一個學C語言/C++的學習裙【 712,284,705】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!點我加入
