資料介紹
在進(jìn)行 C 程序開發(fā)時(shí),編譯就是將編寫的 C 語言代碼變成可執(zhí)行程序的過程,這一過程
是由編譯器來完成的。編譯器就是完成程序編譯工作的軟件,在進(jìn)行程序編譯時(shí)完成了一系
列復(fù)雜的過程。
1.1.1 程序編譯的過程
在執(zhí)行這一操作時(shí),程序完成了復(fù)雜的過程。一個(gè)程序的編譯,需要完成詞法分析、語
法分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。本章將講解這些步驟的作用與原理。
?。?)詞法分析。指的是對由字符組成的單詞進(jìn)行處理,從左至右逐個(gè)字符地對源程序進(jìn)
行掃描,產(chǎn)生一個(gè)個(gè)的單詞符號(hào)。然后把字符串的源程序改造成為單詞符號(hào)串的中間程序。
在編譯程序時(shí),這一過程是自動(dòng)完成的。編譯程序會(huì)對代碼的每一個(gè)單詞進(jìn)行檢查。如果單
詞發(fā)生錯(cuò)誤,編譯過程就會(huì)停止并顯示錯(cuò)誤。這時(shí)需要對程序中的錯(cuò)誤進(jìn)行修改
(2)語法分析。語法分析器以單詞符號(hào)作為輸入,分析單詞符號(hào)串是否形成符合語法規(guī)
則的語句。例如,需要檢查表達(dá)式、賦值、循環(huán)等結(jié)構(gòu)是否完整和符合使用規(guī)則。在語法分
析時(shí),會(huì)分析出程序中錯(cuò)誤的語句,并顯示出結(jié)果。如果語法發(fā)生錯(cuò)誤,編譯任務(wù)是不能完
成的。
?。?)中間代碼生成。中間代碼是源程序的一種內(nèi)部表示,或稱中間語言。程序進(jìn)行詞法
分析和語法分析以后,將程序轉(zhuǎn)換成中間代碼。這一轉(zhuǎn)換的作用是使程序的結(jié)構(gòu)更加簡單和
規(guī)范。中間代碼生成操作是一個(gè)中間過程,與用戶是無關(guān)的。
?。?)代碼優(yōu)化。代碼優(yōu)化是指對程序進(jìn)行多種等價(jià)變換,使得從變換后的程序能生成更
有效的目標(biāo)代碼。用戶可以在編譯程序時(shí)設(shè)置代碼優(yōu)化的參數(shù),可以針對不同的環(huán)境和設(shè)置
進(jìn)行優(yōu)化。
(5)目標(biāo)代碼生成。目標(biāo)代碼生成指的是產(chǎn)生可以執(zhí)行的應(yīng)用程序,這是編譯的最后一
個(gè)步驟。生成的程序是二進(jìn)制的機(jī)器語言,用戶只能運(yùn)行這個(gè)程序,而不能打開這個(gè)文件查
看程序的代碼。
- Linux下C語言編程入門教程詳細(xì)說明 39次下載
- LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程 9次下載
- Linux操作系統(tǒng)下C語言編程入門.pdf 96次下載
- Linux下C編程 嵌入式開發(fā) 31次下載
- 基于Linux操作系統(tǒng)下C語言編程入門 11次下載
- Linux下C編程基礎(chǔ)之常用編輯器淺析 0次下載
- Linux下C編程基礎(chǔ)之使用autotools 0次下載
- Linux下C編程基礎(chǔ)之實(shí)驗(yàn)內(nèi)容及小結(jié) 0次下載
- Linux下的C編程實(shí)戰(zhàn) 1次下載
- Linux下C編程基礎(chǔ) 5次下載
- Linux下C編程 48次下載
- Linux下C編程 10次下載
- Linux下C編程 0次下載
- Linux下C編程電子書 0次下載
- linux下c語言編程pdf 0次下載
- Linux應(yīng)用編程的基本概念 265次閱讀
- Linux 下GCC的編譯 2679次閱讀
- Linux 下的make 工具和 Makefile 1210次閱讀
- 深入探索Linux中的C語言 2015次閱讀
- 如何在Linux系統(tǒng)下開啟wifi 4553次閱讀
- Linux系統(tǒng)編程有哪些優(yōu)勢 1279次閱讀
- 整理思維!史上最全Linux/C/C++思維導(dǎo)圖! 4371次閱讀
- 為什么Linus不用C井語言寫Linux系統(tǒng) 3763次閱讀
- 淺談嵌入式Linux下的C語言編程知識(shí)要點(diǎn) 4704次閱讀
- 嵌入式Linux下的C編程知識(shí)要點(diǎn)匯總 3147次閱讀
- 基于嵌入式linux系統(tǒng)下的串口編程具體設(shè)置詳解 7022次閱讀
- 基于嵌入式Linux下的I2C設(shè)備驅(qū)動(dòng)的總體思路與框架設(shè)計(jì) 3771次閱讀
- 關(guān)于Linux下多線程編程技術(shù)學(xué)習(xí)總結(jié) 2217次閱讀
- 搭建測試環(huán)境常用linux命令_linux下web測試環(huán)境的搭建 1.1w次閱讀
- Linux下ARM 和單片機(jī)的串口通信設(shè)計(jì) 3486次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論