什麽是編譯器(編程軟件)?
時間:2020-10-23 作者:管理員(yuán) 點擊:637
總的來說,你所謂的編程語言其實就是軟件,叫做編譯器,它讀取文本文件,做了許多處理,并生(shēng)成二進制文件。大(dà)白(bái)話(huà)的講,就是負責“翻譯”或“解釋”代碼的一(yī)個軟件!
編譯器可以是任何一(yī)個能将一(yī)個文本翻譯爲另一(yī)個文本的程序。比如C語言、C++這樣的程序,當我(wǒ)(wǒ)們一(yī)行一(yī)行寫下(xià)代碼後,需要經過編譯器的“翻譯”才能變成可執行程序才可以執行。才可以實現代碼到程序的轉變,而這一(yī)切都需要編譯器幫我(wǒ)(wǒ)們去(qù)做。
編譯器做了什麽?
簡單來說,編譯器讀取源代碼生(shēng)成二進制文件。由于直接将複雜(zá)的、人類可讀的代碼轉爲一(yī)和零是非常複雜(zá)的,編譯器在程序可運行前有幾個步驟要做:
讀取你給它的源代碼中(zhōng)的獨立字符。
将字符分(fēn)類爲字,數字,符号和操作符。
獲取已排序完的字符,并通過将它們與模式匹配相匹配和生(shēng)成操作樹(shù)來确定它們嘗試進行的操作。
叠代上一(yī)步中(zhōng)生(shēng)成操作樹(shù)中(zhōng)的每一(yī)個操作,并生(shēng)成等效的二進制文件。
當我(wǒ)(wǒ)說編譯器立刻從一(yī)個操作樹(shù)轉化到二進制文件時,它實際生(shēng)成了彙編代碼,彙編代碼随後被彙編/編譯成二進制文件。彙編像是更高級的,人類可讀的二進制文件。
那麽問題來了,我(wǒ)(wǒ)們學編程,比如C語言,又(yòu)是32個關鍵字、又(yòu)是各種函數,還有各種語法,學這些不就爲了寫代碼讓電(diàn)腦執行嗎(ma)?爲什麽還要編譯器“翻譯”呢?
答案很簡單,因爲:電(diàn)腦(其實主要就是CPU)隻認識0或1這兩個數字。所有寫的一(yī)切代碼,都需要編譯器幫我(wǒ)(wǒ)們編譯也就是翻譯成大(dà)量的01代碼,才是CPU的“母語”,CPU才會熟練的幫我(wǒ)(wǒ)們飛一(yī)般的幫速度執行。
那麽你可能又(yòu)會問,既然CPU隻認識0和1,反正也要翻譯一(yī)遍,那我(wǒ)(wǒ)們還學什麽編程,學什麽語法,直接用漢語寫命令寫代碼不行嗎(ma)?
答案是:當然可以,比如易語言,或号稱一(yī)句話(huà)就可以完成一(yī)個功能的swift語言等等。
無論哪種語言,想要最終成爲可執行的程序,都需要編譯器幫我(wǒ)(wǒ)們去(qù)編譯才可以實現! 無非是語言的高級與否,影響編譯器翻譯量多少而已!源碼要運行,必須先轉成二進制的機器碼。
以C語言爲例,常見的編譯器有:
Windows系統下(xià)VC/VS系列編譯器爲cl.exe
Linux系統下(xià)原生(shēng)自帶的gcc編譯器
Max系統下(xià)的LLVM/CLANG編譯器
這些編譯器的使用方式常常在DOS或命令提示符下(xià),通過一(yī)步步的命令進行操作,需要經過編譯、鏈接才會生(shēng)成對應的可執行文件
什麽是IDE(集成開(kāi)發環境)?
簡單講,就是比編譯器功能更全面更強大(dà)界面更友好的軟件
我(wǒ)(wǒ)們實際學習和開(kāi)發過程中(zhōng)大(dà)家聽(tīng)到或見過的基本都是IDE(集成開(kāi)發環境),比如VC6.0、VS2012、CodeBlocks等等,他們的核心還是前面提到的編譯器,隻不過爲了大(dà)家方便,全部免去(qù)命令形式的操作,取而代之的友好的界面,一(yī)鍵編譯等方便的操作,還額外(wài)提供包括代碼高亮、代碼調試、項目管理等高級功能
常見的編譯器有:
TurboC2.0
VC6.0
VS系列(比如VS2012)
CodeBlocks
DevCpp
C-Free
等等