大三編譯原理chapter高級程序設計語言數據結構與算法形式_第1頁
大三編譯原理chapter高級程序設計語言數據結構與算法形式_第2頁
大三編譯原理chapter高級程序設計語言數據結構與算法形式_第3頁
大三編譯原理chapter高級程序設計語言數據結構與算法形式_第4頁
大三編譯原理chapter高級程序設計語言數據結構與算法形式_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

SchoolofComputerScience&TechnologyHarbinInstituteofTechnology編譯原CompilerPrinciplesand:綜合樓:

辦 課 課 教學目的(續在系統級上認識算局部最優vs.全局最優(木桶效應或短板效應進一步培養“計算思維能力 教學目的(續計算機專 、有效的知識載體之綜合運用下列課程所學知 教學要求——課程知識要部分的任務、編譯過程各個階段的工作原理、 教學要求——實驗實驗形實驗內 6學 12學 教學要求—— 教學要求——考試要期末考試占 教學方 學習方法——教中學、做中學、創中基于問題的學習(What-Why-學習要以思考基礎知識是研究的工 學習方法——教中學、做中學、創中要敢于犯錯 教學、學習是一個過 教師在傳授知識和技術的過程中,偶爾會傳授教訓 學習方法——教中學、做中學、創中 寄 學會做人 時間就像海綿里的水,只要肯擠,總會有的。貴在恒 主要內 電. : SchoolofComputerScience&TechnologyHarbinInstituteofTechnology 第1程序設計語編譯程序的組編譯程序的生本章小 計assumecs:code,計datadwdatacode movax,movds,movax,

int{inta,b,c; return movbx,movcx,0addcx,axaddcx,movcx,ds:[4]movax,4c00hint21hcodeend如UNIX上的

A1001000101100011110000000000000101110010000000000000000001111001000000000111100101110001011000011100000000000001011100000000000010011001100110100100001程序設計語言的分強制式(命令式)語言(Imperative 程序設計語言的分申述式語言(Declarative基本運算單位是函數,如LISP、著重于如何描述潛在的并行機制,如 程序設計語言的分面向對象語言(Object-Oriented以對象 1.2程序設計語言的翻序(目標程序——ObjectProgram)的程序。(*.C/

翻譯程(*.OBJ/翻譯程 程序設計語言的翻解釋程序一口譯與筆譯(單句提交與整篇提交解釋程源程 解釋程 1.2程序設計語言的翻編譯程序編譯程源程 編譯程 1.2程序設計語言的翻 O- P- RSSys. 1.2程序設計語言的翻交叉匯編程序(Cross 1.2程序設計語言的翻譯—

高級語反匯反匯編反編譯

編譯程序總體結詞法詞法分出理

目標代

語法語法分語義語義分析與中間代代碼代碼優理結(標識符結(標識符(賦值號(整常數(加號,+(整常數(乘號,*(標識符(加號,+(標識符(分號,;例 1、詞法詞法分析由詞法分析器(Lexicalyzer)完號表管輸入:字符輸出:(種別碼,屬性值)——序屬性值——token的機內表 2、語法 yzer)完成,法分析器又叫Parser功能Parser實現“組詞成句將詞組成各類語法成分:表達式、因子、項,語句,子程序構造分析指導翻輸入:token 賦值語左部

表達

表達

表達 表達

表達 表達

表達

表達

表達

3、語義 (syntax-directedtranslation)功能:分析由語法分析器識別出來的法成分的語獲取標識符的屬性:類型、作用語義檢查:運算 、取值范圍子程序的靜態綁定:代碼的相對地變量的靜態綁定:數據的相對地 4、中間代碼生中間代碼(intermediate例sum1020+numsquare前綴表示(波蘭=sum*+1020+num

(*,T1,T2,T3)(=,T3,,(*,⑴,⑵),

= 20 波蘭表示問題——Lukasiewicz1929波蘭表示(Polish/Prefix/Parenthesis- Lukasiewicznotation)——也就是前綴表示 +③*+①ab+②—c逆波蘭表示(ReversePolishSuffixPostfixnotation)——也就是后綴表示ab①c@d②*ef 4、中間代碼生簡單規與機器無

例 易于優化與轉

x param call

注s o的地fprintf 5、代碼 與機公共子表達式的提取:在基 與機器有關的優 6、目標代碼生將中間代碼轉換成目標機上的機器指令代或匯編代(機器指令組/匯編語句組目標代碼的形 7、表格編譯的各個階段提供信Hash表、鏈表等各種表的查、填技“數據結構與算法”課程的應 8、錯誤處進行各種錯誤的檢查、報告、糾正,以及應的續編譯處理(如:錯誤的定位與局部化 模塊分析:詞法分析、語法分析、語義分綜合:中間代碼生成、代碼優化、目代碼生輔助:符號表管理、出錯處8項功能對應8個模 語句sum=(10+20)*(num+square);的翻譯 T1=10+02ssreT 左部量

表達

Re,D2q1T1= sum 20

表達

編譯程序的組根據系統資源的狀況、運行目標的要求……描的形式,在每一遍。遍可以和階段相對單遍代碼不太有 1.4編譯程序的組編譯程序的設計目編譯系統規模較 編譯程序的組前后 編譯程序的生直接用可運行的代碼編制——太費“第一個編譯器是怎樣被 T形功表示語言翻譯的T形功源源語目標實現語 自 C子 機器語C子 機器語匯編語機器語匯編語 機器語機器語C語機器語C語機器語機器語獲得一機器語機器語C子C語用CC語言的編譯程序(P3—人 移條件:A機有CC語B機C語C語B機C語B機B機C語 問題的分C語

B機C語

A機

A機AA機C語

C語

A機

C語B B機

B機

獲得一個P1A機A機A機C語獲得一個P1A機A機A機C語C語C語B機C語(A機的C編譯P1)編譯P0,得到在A機上可運行的 A機A機A機A機A機A機C語B機C語P1C語C語BC語C語B機C語C語B機A機A機獲得的工3.(A機的P2)編譯P0,得到在B機上可運行的 本機編譯器的利個新語言NEW的編譯器?能利用交叉編譯用C編寫NEW的編譯,并用CP1A機A機A機C語A機NEW語A機NEW語 編譯程序的自動生

(C程序yylex yyparse

(C程序 編譯技術的應把復雜數據看作一條語數據格式的分數據處理的框編譯技術可以用于各編譯技術的應自然語言的理解和翻語法制導的結構化編輯程序格式化工軟件測試工程序理解工例1-DOS命令date例:9-3-1993、09-03-1993、9-03-date→month-day-month→DIGITDIGIT| →DIGITDIGI

溫馨提示

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

評論

0/150

提交評論