資料介紹
在進(jìn)行 C 程序開發(fā)時(shí),編譯就是將編寫的 C 語言代碼變成可執(zhí)行程序的過程,這一過程
是由編譯器來完成的。編譯器就是完成程序編譯工作的軟件,在進(jìn)行程序編譯時(shí)完成了一系
列復(fù)雜的過程。
1.1.1 程序編譯的過程
在執(zhí)行這一操作時(shí),程序完成了復(fù)雜的過程。一個(gè)程序的編譯,需要完成詞法分析、語
法分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。本章將講解這些步驟的作用與原理。
?。?)詞法分析。指的是對(duì)由字符組成的單詞進(jìn)行處理,從左至右逐個(gè)字符地對(duì)源程序進(jìn)
行掃描,產(chǎn)生一個(gè)個(gè)的單詞符號(hào)。然后把字符串的源程序改造成為單詞符號(hào)串的中間程序。
在編譯程序時(shí),這一過程是自動(dòng)完成的。編譯程序會(huì)對(duì)代碼的每一個(gè)單詞進(jìn)行檢查。如果單
詞發(fā)生錯(cuò)誤,編譯過程就會(huì)停止并顯示錯(cuò)誤。這時(shí)需要對(duì)程序中的錯(cuò)誤進(jìn)行修改
?。?)語法分析。語法分析器以單詞符號(hào)作為輸入,分析單詞符號(hào)串是否形成符合語法規(guī)
則的語句。例如,需要檢查表達(dá)式、賦值、循環(huán)等結(jié)構(gòu)是否完整和符合使用規(guī)則。在語法分
析時(shí),會(huì)分析出程序中錯(cuò)誤的語句,并顯示出結(jié)果。如果語法發(fā)生錯(cuò)誤,編譯任務(wù)是不能完
成的。
(3)中間代碼生成。中間代碼是源程序的一種內(nèi)部表示,或稱中間語言。程序進(jìn)行詞法
分析和語法分析以后,將程序轉(zhuǎn)換成中間代碼。這一轉(zhuǎn)換的作用是使程序的結(jié)構(gòu)更加簡(jiǎn)單和
規(guī)范。中間代碼生成操作是一個(gè)中間過程,與用戶是無關(guān)的。
(4)代碼優(yōu)化。代碼優(yōu)化是指對(duì)程序進(jìn)行多種等價(jià)變換,使得從變換后的程序能生成更
有效的目標(biāo)代碼。用戶可以在編譯程序時(shí)設(shè)置代碼優(yōu)化的參數(shù),可以針對(duì)不同的環(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 98次下載
- 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)用編程的基本概念 1.1k次閱讀
- Linux 下GCC的編譯 3.5k次閱讀
- Linux 下的make 工具和 Makefile 1.8k次閱讀
- 深入探索Linux中的C語言 2.8k次閱讀
- 如何在Linux系統(tǒng)下開啟wifi 5.6k次閱讀
- Linux系統(tǒng)編程有哪些優(yōu)勢(shì) 1.5k次閱讀
- 整理思維!史上最全Linux/C/C++思維導(dǎo)圖! 6.1k次閱讀
- 為什么Linus不用C井語言寫Linux系統(tǒng) 4.2k次閱讀
- 淺談嵌入式Linux下的C語言編程知識(shí)要點(diǎn) 5.3k次閱讀
- 嵌入式Linux下的C編程知識(shí)要點(diǎn)匯總 3.6k次閱讀
- 基于嵌入式linux系統(tǒng)下的串口編程具體設(shè)置詳解 7.5k次閱讀
- 基于嵌入式Linux下的I2C設(shè)備驅(qū)動(dòng)的總體思路與框架設(shè)計(jì) 4.1k次閱讀
- 關(guān)于Linux下多線程編程技術(shù)學(xué)習(xí)總結(jié) 2.5k次閱讀
- 搭建測(cè)試環(huán)境常用linux命令_linux下web測(cè)試環(huán)境的搭建 1.2w次閱讀
- Linux下ARM 和單片機(jī)的串口通信設(shè)計(jì) 3.8k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊(cè)
- 3.00 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管BC817數(shù)據(jù)手冊(cè)
- 2.51 MB | 次下載 | 免費(fèi)
- 3MDD品牌三極管D882數(shù)據(jù)手冊(cè)
- 3.49 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊(cè)
- 3.26 MB | 次下載 | 免費(fèi)
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊(cè)
- 3.09 MB | 次下載 | 免費(fèi)
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊(cè)
- 2.32 MB | 次下載 | 免費(fèi)
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動(dòng)汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論