編譯程序基本概念_第1頁
編譯程序基本概念_第2頁
編譯程序基本概念_第3頁
編譯程序基本概念_第4頁
編譯程序基本概念_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

(優選)編譯程序基本概念當前1頁,總共15頁。第1章

關于編譯程序的基本概念內容提要:1.1什么是編譯程序?1.2編譯程序邏輯結構

1.3編譯程序實現機制

1.4編程過程實例分析當前2頁,總共15頁。Ⅲ.Ⅱ.Ⅰ.

※計算機中語言的層次體系:解釋程序

圖1.1計算機中語言的層次體系高級語言1編譯程序2反匯編程序匯編程序

匯編語言機器語言

計算機反編譯程序轉換程序

高級語言2編譯程序1當前3頁,總共15頁。

1.1什么是編譯程序?

編譯程序(compiler)是一種翻譯程序,它特指把某種高級程序設計語言翻譯成具體計算機上的低級程序設計語言。

高級語言的執行過程---源語言編譯程序目標語言數據結果運行程序編譯階段運行階段圖1.2高級語言的執行過程兩個階段:當前4頁,總共15頁。

※什么是解釋程序?解釋程序(interpreter)也是一種翻譯程序,將某高級語翻譯成具體計算機上的低級程序設計語言;解釋程序的執行過成如圖1.3所示。

編譯程序與解釋程序的主要區別:數據結果解釋程序圖1.3解釋程序的執行過程一條源語句⑴前者有目標程序而后者無目標程序;⑵前者運行效率高而后者便于人機對話。當前5頁,總共15頁。1.2編譯程序結構詞法分析語法分析語義分析代碼生成源語言目標語言錯誤處理符號表管理圖1.4編譯程序總體結構框圖優化處理

編譯程序總體結構如圖1.4所示。編譯程序的五個階段:單詞串TOKEN詞法分析源語言語法分析語義分析優化處理代碼生成目標語言優化語義樹錯誤處理符號表管理語法樹語義樹當前6頁,總共15頁。【例1.1】我們用樹葉和顏料能夠制作美麗的圖畫。【機器翻譯】是指利用計算機把一種自然語言翻譯成另一種自然語言。翻譯過程Ⅰ.詞法分析:r()p()n()c()n()u()v()a()n().Ⅱ.句法分析:漢英辭典與知識庫Wecanmakebeautifulpictureswithleavesandpaint.SpSbjPrdruvObjPpVpNpanpNpncnⅢ.語義分析:制作(make)<施事>我們(we)<受事>圖畫(pictures)<特征>美麗(beautiful)<材料>樹葉(leaves)<并列>顏料(paint)<格標>用(with)Ⅳ.優化處理:…Ⅴ.目標生成:※編譯程序與機器翻譯的類比:語義網語法樹當前7頁,總共15頁。1.3編譯程序的實現機制

根據語言和環境的不同,編譯程序實現時是把圖1.2中的各階段劃分成若干遍;遍:編譯程序對源程序或等價程序從頭至尾掃描的次數。

兩遍的編譯程序:

第一遍:詞法分析、語法分析和語義分析;

第二遍:目標代碼生成和目標代碼優化。

每遍中的各階段的工作是穿插進行的,例如:使語法分析器處于核心位置,而把詞法分析器作為子程序;當語法分析需要下一個單詞時,就調用詞法分析器,識別一個單詞。當前8頁,總共15頁。1.4編譯過程實例例:Pascal程序片段:⒈

詞法分析:識別單詞并分類vara,b:integer;

...b:=a+2*5;

編譯過程如下:⑴關鍵字(k)--var,integer;

⑵標識符(i)--a,b;

⑶常數(c)--2,5;⑷界符(p)--,;::=+

單詞類碼當前9頁,總共15頁。圖1.5賦值語句b:=a+2*5

的語法樹例:b:=a+2*5

的分析過程如下所示:(生成的結果是一棵語法樹

)

<變量>

:=<表達式><賦值語句>b

<項>+<項>

<變量><因式>*<因式>

<常數><常數>a25<因式>2.語法分析:組詞成句及語法錯誤檢查算術表達式的層次結構ⅠⅡⅢ當前10頁,總共15頁。3.語義分析:分析各種語法成分的語義特征;vara,b:integer;

...b:=a+2*5;構建標識符的語義辭典---符號表:構造語句的語義樹---中間語言;

b的值

a的值

數據區

v

i

b

v

i

a地址種類類型名字符號表:=b+a*25如:b:=a+2*5⑴(*25t1)⑵(+at1t2)⑶(:=t2_b)或當前11頁,總共15頁。4.

優化:提高目標程序質量的工作;:=b+a*25⑴(*25t1)⑵(+at1t2)⑶(:=t2_b)經常數合并,可分別獲得優化后的中間代碼如下圖所示:⑴(+a10t2)⑵(:=t2_b)例:b:=a+2*5:=b+a10當前12頁,總共15頁。5.

目標代碼生成:

產生計算機可識別的語言;通常,是把中間語言轉換成目標代碼,⑴(+a10t2)⑵(:=t2_b)①LDR,a②ADDR,10

③STR,bR

為寄存器三條指令分別為:取、加和存。如:目標代碼:當前13頁,總共15頁。

編譯程序的理論基礎編譯程序的構造,是一種語言處理工程,其理論基礎和技術基礎主要有以下兩個方面:

1.形式語言【第2章】計算機處理語言,首先應考慮語言的形式化、規范化,使其具有可計算性和可操作性;形式語言誕生于1956年,由chomsky創立。

2.自動機【第3章】

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論