




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中原工學(xué)院軟件學(xué)院,中原工學(xué)院軟件學(xué)院, 計(jì)算機(jī)技術(shù)概論introductiontocomputertechnologies第6章編譯原理基礎(chǔ)Principles of Compilation,中原工學(xué)院軟件學(xué)院韓玉民,編譯計(jì)程儀程序是高級語言的支持基礎(chǔ),是計(jì)算機(jī)系統(tǒng)中重要的系統(tǒng)軟件的第六章編譯原理,6.1軟件編程語言編譯和解釋6.2形式語言6.3第一階段字句分析6.4第二階段語義分析6.5第三階段語義分析和中間查詢密碼生成6.6第四階段查詢密碼優(yōu)化6.7符號表管理和錯(cuò)誤處理6.8第五階段對象查詢密碼生成,第六章編譯原理高級語言:高級語言,F(xiàn)ORTRAN 、6.1軟件編程語言編譯和解釋、6.1
2、.1軟件編程語言、機(jī)器語言本身由0和1組成,符合計(jì)算機(jī)硬件特性,可直接執(zhí)行。 但是,用機(jī)器語言寫塑料計(jì)程儀很不方便,容易出錯(cuò),所以用助記符代替機(jī)器語言,做成匯編語言。 與機(jī)器語言相比,匯編語言在可讀性方面有所進(jìn)步,但具體的依賴于機(jī)器的特性依然沒有改變,軟件編程語言上有困難。6.1.2編譯和解釋plum計(jì)程儀,6.1編譯和解釋軟件編程語言,因?yàn)楦呒壵Z言不能直接在機(jī)器上執(zhí)行,而是面向應(yīng)用程序,所以執(zhí)行高級語言需要編譯程序。 編譯程序是將用高級語言寫成的源程序轉(zhuǎn)換成和它邏輯性等價(jià)的低級語言形式的營銷對象計(jì)程儀程序的計(jì)程儀程序。 1、編譯方式、6.1軟件編程語言的編譯和解釋、高級語言程序的執(zhí)行通常分為
3、編譯階段和執(zhí)行階段兩個(gè)階段,源程序的執(zhí)行過程如圖1-1所示。編譯程序計(jì)程儀、執(zhí)行程序計(jì)程儀、編譯和解釋6.1軟件編程語言、在編譯階段將源計(jì)程儀程序轉(zhuǎn)換為營銷對象程序計(jì)程儀程序的執(zhí)行階段,生成的營銷對象程序與執(zhí)行系統(tǒng)(數(shù)據(jù)空間分配子程序、標(biāo)準(zhǔn)函數(shù)程序等)一起執(zhí)行程序的初始解析如果營銷對象計(jì)程儀程序是匯編語言格式,則必須在編譯和執(zhí)行階段之間添加組件階段。 6.1軟件編程語言的編譯和解釋,用高級語言編寫的計(jì)程儀程序除了編譯方式外,解釋程序也可以執(zhí)行。 所謂解釋程序,是以動態(tài)順序讀取句子,解釋句子,執(zhí)行句子,即邊翻譯邊執(zhí)行的語言翻譯計(jì)程儀。 2 .解釋方法,6.1軟件編程語言編譯和解釋,其中編譯高級語
4、言源計(jì)程儀柱的對象查詢密碼通常由多個(gè)對象模塊配置,其中編譯并生成每個(gè)對象模塊的對應(yīng)源計(jì)程儀柱模塊并且關(guān)聯(lián)的多個(gè)對象完成整合作業(yè)的計(jì)程儀程序稱為連接程序。 連接計(jì)程儀程序連接營銷對象計(jì)程儀程序和標(biāo)準(zhǔn)庫函數(shù)的查詢密碼,以及營銷對象程序計(jì)程儀程序和計(jì)算機(jī)執(zhí)行操作系統(tǒng)提供的資源(存儲分配程序和輸入輸出設(shè)備等),解釋為3 .鏈接器(linker )、6.1編程語言的編譯, 解釋計(jì)程儀程序和編譯程序的主要區(qū)別是編譯程序?qū)⒃从?jì)程儀程序翻譯成營銷對象程序計(jì)程儀程序后執(zhí)行。6.1軟件編程語言編譯和解釋、6.1.3編譯程序編譯過程和編譯程序結(jié)構(gòu)、編譯程序功能是將高級語言編寫的源程序翻譯成等效低級語言(匯編語言或機(jī)
5、器語言)營銷對象程序。 由于編譯過程是不同語言的翻譯過程,因此該過程類似于自然語言的翻譯。、6.1.3編譯程序編譯過程和編譯程序結(jié)構(gòu)、自然語言翻譯、6.1.3編譯程序編譯過程和編譯程序結(jié)構(gòu)、編譯過程可分為5個(gè)階段,1 .編譯過程,編譯程序功能把高級語言源程序翻譯成等效的低級語言營銷對象程序源計(jì)程儀程序由幾個(gè)基本符號構(gòu)成,我們在執(zhí)行該程序時(shí),首先進(jìn)行編譯,如果哪里有錯(cuò)誤則報(bào)告錯(cuò)誤,如果沒有錯(cuò)誤則執(zhí)行。 編譯程序在編譯時(shí),首先將普計(jì)程儀程序中的單詞逐一分離,登錄在一個(gè)表中。 這叫做詞法分析,接著檢查句子的格式。 我們稱之為語法分析。 然后檢查類型是否匹配,修正公式的值稱為語義分析。 這些個(gè)的功能由
6、與編譯程序?qū)?yīng)的計(jì)程儀程序執(zhí)行。 6.1.3編譯程序的編譯過程和編譯程序的結(jié)構(gòu)一般可以被分為五個(gè)階段,即整個(gè)編譯過程進(jìn)行詞法分析階段、語義分析和中間查詢密碼生成階段、中間查詢密碼的優(yōu)化目標(biāo)查詢密碼的生成。6.1.3編譯程序編譯過程和編譯程序結(jié)構(gòu)、1 .編譯過程、6.1.3編譯程序編譯過程和編譯程序結(jié)構(gòu)、2.1遍和多徑效應(yīng)編譯,編譯程序還以“遍”的形式, 編譯過程可以通過單遍或多徑效應(yīng)編譯完成的編譯“遍”(pass )是指對源計(jì)程儀程序或中間查詢密碼進(jìn)行從頭至尾路徑掃描,完成所需的處理塔斯克,并生成新源計(jì)程儀程序的中間查詢密碼或營銷對象代碼的過程。 在單遍編譯中,編譯程序包括編譯程序的每個(gè)階段的
7、塔斯克,所有階段都在一遍中完成,從而使編譯成功,但通常查詢密碼效率較低。6.1.3編譯程序編譯過程和編譯程序結(jié)構(gòu)、2.1遍和多徑效應(yīng)編譯以及多徑效應(yīng)掃描編譯程序,每遍完成一個(gè)或多個(gè)相關(guān)邏輯的工作,一個(gè)階段的工作也可以分多次完成。 例如,把形態(tài)素解析作為第一篇,把語法解析和語義解析作為第二遍等。 6.2形式語言軟件編程語言的語法描述、普通話也和自然語言一樣有語法規(guī)則,要對普通話進(jìn)行語法解析,首先要了解普通話的語法規(guī)則。 程序的語法規(guī)則稱為語法,語法是記述語言的形式規(guī)則(語法規(guī)則)。 用一系列數(shù)學(xué)符號和規(guī)則描述的語言稱為形式語言。 目前,軟件編程語言用形式語言描述,形式語言是編譯原理的理論基礎(chǔ)。
8、1 .什么是形式語言? 6.2形式語言軟件編程語言的語法描述、普通話也和自然語言一樣有語法規(guī)則,要對普通話進(jìn)行語法解析,首先要了解普通話的語法規(guī)則。 程序的語法規(guī)則稱為語法,語法是記述語言的形式規(guī)則(語法規(guī)則)。 期望這樣的規(guī)則能夠描述程序語言的各種結(jié)構(gòu),并且能夠基于該語法規(guī)則自動生成有效的語法分析計(jì)程儀程序以便于計(jì)程儀程序的分析和翻譯。 目前,軟件編程語言用形式語言描述,形式語言是編譯原理的理論基礎(chǔ)。6.2形式語言軟件編程語言的語法記述、2 .字母和符號串、任何語言都是由該語言的基本符號構(gòu)成的符號串的集合。 例如,英語文章由句子和標(biāo)點(diǎn)符號構(gòu)成,句子由單詞構(gòu)成,單詞由字母構(gòu)成。 6.2形式語言
9、軟件編程語言的語法記述,2 .字母和符號串,(1)字母是沒有符號空白的貧窮集合,字母中的要素被稱為符號。 字母表也叫符號表。 不同的語言有不同的字母。 例如,英語字母是26個(gè)字母的字母、數(shù)字和特殊符號。 對外漢語的字母是中國字、數(shù)字、專用符號等。 習(xí)語言的字母包括牛鼻子字、字母、數(shù)字和一些專用符號。 (2)符號串由字母表中的符號構(gòu)成的貧窮序列被稱為該字母表上的符號串。 例如,短語“if (x=8) then a=5 else a=9”可以被視為在習(xí)語言字母上定義的符號串。6.2形式語言軟件編程語言的語法描述,3 .語法是描述語法或語言語法結(jié)構(gòu)的形式規(guī)則。 我們以自然語言為例進(jìn)行說明。 在記述語
10、言的時(shí)候,要說明那個(gè)語言中包含著哪個(gè)句子。 比如說對外漢語,對外漢語的句子是無限的,不能全部寫。 它制定了有限的語法規(guī)則,用這些個(gè)的語法規(guī)則生成對外漢語的所有句子。 這些個(gè)的規(guī)則就是所謂的語法。 6.2形式語言軟件編程語言的語法記述,3 .語法是指語法規(guī)則,例如,=|=我|你|她=李翔|韓方|計(jì)算機(jī)|大學(xué)生|人民教師|習(xí)語言=是|定義語法規(guī)則的語法定義用EBNF來記述:=|-=0|1|2|3|4|5| 6 9,6.2形式語言軟件編程語言的語法記述,=|=a|b|c|e|f|g|I| z=a|b|c|d |當(dāng)然,形態(tài)素解析是在識詞的過程中,還對云同步進(jìn)行了形態(tài)素檢查。 6.3在第一階段字句解析、
11、高級語言中,單詞是指與邏輯性緊密相連的一系列文字,這些個(gè)文字具有集體意義。 單詞是語言中最小的語義單位,如牛鼻子詞、標(biāo)識符、運(yùn)算符和分界符。 詞法分析的根據(jù)是詞語的結(jié)構(gòu)。 單詞的結(jié)構(gòu)規(guī)則用高級語言明確規(guī)定,如哪個(gè)是保留關(guān)鍵字、變量是如何定義的、常數(shù)是如何構(gòu)成的、分隔符是如何存在的等。 6.3第一階段詞法分析、詞法分析的主要內(nèi)容是: (1)分析并識別單詞及其屬性;(2)跳過空格、回車、制表符等分隔符;(3)刪除注釋;(4)進(jìn)行詞法檢查,并報(bào)告發(fā)現(xiàn)的錯(cuò)誤;(5)根據(jù)需要6.3第一階段-語法分析,main() float x=2,y=3,s; s=x y*5。 例如,在用習(xí)語言書寫的段中,語法分析作
12、為6.3級語法分析、表1 -語法分析計(jì)程儀、6.3 -第一級語法分析、第二級輸入(如該表所示),并且編譯過程的第二階段語法分析的作用是基于語言的語法規(guī)則的在解析過程中,對由單詞列組成的源程序進(jìn)行語法精準(zhǔn)性檢查。 語法分析可以確定整個(gè)輸入符號串是否構(gòu)成正確的堆計(jì)程儀柱。 6.4第二階段語法分析、6.4第二階段語法分析、語法分析的結(jié)果是沒有語法錯(cuò)誤的語法成分,有多種輸出形式。 6.5第三階段-語義分析和中間查詢密碼的生成,一個(gè)源計(jì)程儀程序通過詞法分析和文法分析,確定該源計(jì)程儀程序在單詞拼寫和文法上正確,但沒有分析該句的邏輯性語義,即執(zhí)行什么操作。 字句和語法的正確不能保證意義的正確。 就像單詞拼法
13、正確,語法正確的文章一樣,人們在閱讀的時(shí)候首先要能夠閱讀。 然后,必須理解所有的語言和文章整體的意思和思想。 這就是文章的意思解析。 語義分析的塔斯克是翻譯各種句子。 包括兩項(xiàng)工作。 一是對每個(gè)語法類別進(jìn)行語義檢查,如是否定義了變量、類型是否正確等。二是在語義檢查正確的情況下進(jìn)行中間色查詢密碼的翻譯。普計(jì)程儀拉姆的語義解析是對普計(jì)程儀拉姆的邏輯性語義的解析,是編譯中最實(shí)質(zhì)的工作。什么? 6.5第三階段-語義分析和中間查詢密碼的生成,1 .語義分析,中間查詢密碼是介于高級語句和低級語句之間的獨(dú)立于特定硬件的符號系統(tǒng),在某種程度上是抽象的,非常接近低級語言,因此很容易轉(zhuǎn)換為目標(biāo)查詢密碼。 什么?
14、6.5第三階段語義分析和中間查詢密碼的生成、2 .中間查詢密碼的生成、中間查詢密碼的表現(xiàn)形式多種多樣,常見的有:四元式三元式間接三元式逆波蘭式等。 其中的四維形式為: (算子、運(yùn)算對象1、運(yùn)算對象2、結(jié)果),6.5第三階段語義分析和中間查詢密碼的生成,6.6第四階段中間查詢密碼的優(yōu)化,查詢密碼優(yōu)化是用于提高目標(biāo)查詢密碼質(zhì)量的加工和處理作業(yè),是目標(biāo)查詢密碼執(zhí)行時(shí)效率,即執(zhí)行時(shí)間更高的優(yōu)化會話之一在生成中間查詢密碼或生成營銷對象查詢密碼之后,編譯程序?qū)嶋H上包括許多查詢密碼改進(jìn)或優(yōu)化步驟。 的雙曲馀弦值。 中間查詢密碼優(yōu)化通過調(diào)整和更改中間查詢密碼中的一些操作順序,最終生成更高效的營銷對象查詢密碼。
15、 最優(yōu)化的主要手段有:冗馀佗運(yùn)算刪除不需代入合并已知量循環(huán)最優(yōu)化等。 6.6第四階段中間查詢密碼優(yōu)化,6.6第四階段中間查詢密碼優(yōu)化,該階段的任務(wù)是將上一階段的中間查詢密碼變換為特定的機(jī)器上的機(jī)器語言或匯編語言程序,實(shí)現(xiàn)機(jī)器的最終翻譯。 最終階段的工作在營銷對象語言的關(guān)系上強(qiáng)烈依賴于機(jī)器的硬件系統(tǒng),即如何利用機(jī)器現(xiàn)有的暫存器,合理選擇指令,生成盡可能短的營銷對象查詢密碼,與機(jī)器的硬件有關(guān)。 6.7第五階段對象查詢密碼的生成、對象查詢密碼生成計(jì)程儀程序生成的對象查詢密碼有不同的形式,一般存在以下三種形式。 (1)能夠立即執(zhí)行的機(jī)器語言查詢密碼這一查詢密碼所有的地址都被定位,在編譯后能夠立即執(zhí)行。
16、 (2)如果需要執(zhí)行將要實(shí)現(xiàn)的機(jī)器語言查詢密碼模塊,它們必須通過連接實(shí)現(xiàn)計(jì)程儀與另一執(zhí)行子例程(例如,語言系統(tǒng)函數(shù)庫)連接實(shí)現(xiàn),以構(gòu)成可執(zhí)行的機(jī)器查詢密碼。 (3)匯編語言查詢密碼必須裝配到可由裝配計(jì)程儀程序執(zhí)行的機(jī)器語言查詢密碼中。6.7第五階段對象查詢密碼的生成、6.7第五階段對象查詢密碼的生成、6.8象征符表管理和錯(cuò)誤處理、6.8象征符表管理和錯(cuò)誤處理,大多在編譯的各階段收集源計(jì)程儀程序的各種信息,為了方便起見,將這些個(gè)的信息作為牛鼻子字表、 以保存在排列信息表、識別符等中的方式,源計(jì)程儀程序的各種信息的記錄、使用、管理實(shí)際上是這些個(gè)的象征符表的存儲、網(wǎng)站數(shù)據(jù)庫、管理。1 .符號表、6.8符號表管理和錯(cuò)誤處理、1 .符號表、6.8符號表管理和錯(cuò)誤處理、2 .錯(cuò)誤處理,目前許多集成開發(fā)環(huán)境提供了保證源計(jì)程儀柱精準(zhǔn)性的方法。 例如,Visual Studio的牛鼻子字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間職工管理方案模板
- 菜園農(nóng)場改造方案
- 鄭州幼教面試題及答案
- 南充日報(bào)面試題及答案
- 墓地整治工程方案
- 先鋒團(tuán)員面試題及答案
- 合作開發(fā)項(xiàng)目收益分配與知識產(chǎn)權(quán)保護(hù)協(xié)議
- 銷售公司檢查活動方案
- 西語財(cái)務(wù)面試題及答案
- 摩托機(jī)車考試題及答案
- 口腔咨詢培訓(xùn)課件下載
- 橙色插畫風(fēng)部門納新活動模板
- 遵義市仁懷市選聘城市社區(qū)工作者考試真題2024
- 起重作業(yè)安全知識考核試題(含答案)
- 2025至2030中國醫(yī)療頭戴式顯示器行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 槍支安全管理培訓(xùn)課件
- DB45∕T 1098-2024 橡膠瀝青路面施工技術(shù)規(guī)范
- 2025年沈陽水務(wù)集團(tuán)招聘筆試沖刺題2025
- 2025年 江蘇蘇州昆山國創(chuàng)投資集團(tuán)有限公司第一期招聘考試試卷附答案
- 《蠶絲》教學(xué)課件
- 浙江省麗水市普通高中2024-2025學(xué)年高二上學(xué)期期末教學(xué)質(zhì)量監(jiān)控日語試卷(PDF版含答案不含音頻和聽力原文)
評論
0/150
提交評論