資料介紹
在進(jìn)行 C 程序開(kāi)發(fā)時(shí),編譯就是將編寫(xiě)的 C 語(yǔ)言代碼變成可執(zhí)行程序的過(guò)程,這一過(guò)程
是由編譯器來(lái)完成的。編譯器就是完成程序編譯工作的軟件,在進(jìn)行程序編譯時(shí)完成了一系
列復(fù)雜的過(guò)程。
1.1.1 程序編譯的過(guò)程
在執(zhí)行這一操作時(shí),程序完成了復(fù)雜的過(guò)程。一個(gè)程序的編譯,需要完成詞法分析、語(yǔ)
法分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。本章將講解這些步驟的作用與原理。
(1)詞法分析。指的是對(duì)由字符組成的單詞進(jìn)行處理,從左至右逐個(gè)字符地對(duì)源程序進(jìn)
行掃描,產(chǎn)生一個(gè)個(gè)的單詞符號(hào)。然后把字符串的源程序改造成為單詞符號(hào)串的中間程序。
在編譯程序時(shí),這一過(guò)程是自動(dòng)完成的。編譯程序會(huì)對(duì)代碼的每一個(gè)單詞進(jìn)行檢查。如果單
詞發(fā)生錯(cuò)誤,編譯過(guò)程就會(huì)停止并顯示錯(cuò)誤。這時(shí)需要對(duì)程序中的錯(cuò)誤進(jìn)行修改
(2)語(yǔ)法分析。語(yǔ)法分析器以單詞符號(hào)作為輸入,分析單詞符號(hào)串是否形成符合語(yǔ)法規(guī)
則的語(yǔ)句。例如,需要檢查表達(dá)式、賦值、循環(huán)等結(jié)構(gòu)是否完整和符合使用規(guī)則。在語(yǔ)法分
析時(shí),會(huì)分析出程序中錯(cuò)誤的語(yǔ)句,并顯示出結(jié)果。如果語(yǔ)法發(fā)生錯(cuò)誤,編譯任務(wù)是不能完
成的。
(3)中間代碼生成。中間代碼是源程序的一種內(nèi)部表示,或稱(chēng)中間語(yǔ)言。程序進(jìn)行詞法
分析和語(yǔ)法分析以后,將程序轉(zhuǎn)換成中間代碼。這一轉(zhuǎn)換的作用是使程序的結(jié)構(gòu)更加簡(jiǎn)單和
規(guī)范。中間代碼生成操作是一個(gè)中間過(guò)程,與用戶(hù)是無(wú)關(guān)的。
(4)代碼優(yōu)化。代碼優(yōu)化是指對(duì)程序進(jìn)行多種等價(jià)變換,使得從變換后的程序能生成更
有效的目標(biāo)代碼。用戶(hù)可以在編譯程序時(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ǔ)言,用戶(hù)只能運(yùn)行這個(gè)程序,而不能打開(kāi)這個(gè)文件查
看程序的代碼。
- Linux下C語(yǔ)言編程入門(mén)教程詳細(xì)說(shuō)明 39次下載
- LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程 9次下載
- Linux操作系統(tǒng)下C語(yǔ)言編程入門(mén).pdf 96次下載
- Linux下C編程 嵌入式開(kāi)發(fā) 31次下載
- 基于Linux操作系統(tǒng)下C語(yǔ)言編程入門(mén) 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編程電子書(shū) 0次下載
- linux下c語(yǔ)言編程pdf 0次下載
- Linux應(yīng)用編程的基本概念 265次閱讀
- Linux 下GCC的編譯 2679次閱讀
- Linux 下的make 工具和 Makefile 1210次閱讀
- 深入探索Linux中的C語(yǔ)言 2015次閱讀
- 如何在Linux系統(tǒng)下開(kāi)啟wifi 4553次閱讀
- Linux系統(tǒng)編程有哪些優(yōu)勢(shì) 1279次閱讀
- 整理思維!史上最全Linux/C/C++思維導(dǎo)圖! 4371次閱讀
- 為什么Linus不用C井語(yǔ)言寫(xiě)Linux系統(tǒng) 3763次閱讀
- 淺談嵌入式Linux下的C語(yǔ)言編程知識(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下多線(xiàn)程編程技術(shù)學(xué)習(xí)總結(jié) 2217次閱讀
- 搭建測(cè)試環(huán)境常用linux命令_linux下web測(cè)試環(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í)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開(kāi)關(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 專(zhuān)業(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開(kāi)關(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語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論