北京工業(yè)大學(xué)廖湖聲編.ppt
《北京工業(yè)大學(xué)廖湖聲編.ppt》由會員分享,可在線閱讀,更多相關(guān)《北京工業(yè)大學(xué)廖湖聲編.ppt(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
>,北京工業(yè)大學(xué)廖湖聲編學(xué)時:56小時(含上機:12小時)主頁:172.21.14.209/網(wǎng)上教學(xué)參考教材:《程序設(shè)計語言編譯原理》(第3版)國防工業(yè)出版社,引言,什么叫編譯程序?qū)⒏呒壋绦蛟O(shè)計語言翻譯成邏輯上等價的低級語言(匯編語言,機器語言)的翻譯程序目的:提高執(zhí)行效率,編譯程序,,,源程序,目標程序,(*.C/*.PAS),(*.OBJ/*.EXE),編譯與語言,編譯程序設(shè)計原理:高級程序設(shè)計語言的實現(xiàn)原理編譯技術(shù):最具有代表性的計算機語言處理技術(shù)計算機語言人與計算機、計算機軟件之間的交流工具廣義理解:軟件之間傳輸?shù)男畔?各種用途的計算機語言,程序設(shè)計語言描述程序執(zhí)行的算法數(shù)據(jù)庫語言數(shù)據(jù)定義、數(shù)據(jù)操作機器語言控制計算機的工作命令語言控制系統(tǒng)的工作都是編譯技術(shù)的處理對象,高級程序設(shè)計語言的一般特征,程序結(jié)構(gòu)子程序、函數(shù)——程序包語句——條件、循環(huán)、賦值表達式——邏輯、關(guān)系、算術(shù)變量、常數(shù)、運算符、函數(shù)調(diào)用數(shù)據(jù)結(jié)構(gòu)標量——整數(shù)、浮點數(shù)、字符、字符串?dāng)?shù)組、結(jié)構(gòu)(記錄)抽象數(shù)據(jù)類型——類編譯實現(xiàn)的任務(wù)程序結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)的具體處理,高級語言的分類,過程式語言ImperativeFORTRAN、BASIC、Pascal、C函數(shù)式語言FunctionalLISP、ML邏輯式語言LogicalProlog面向?qū)ο笳Z言O(shè)bject-OrientedSmalltalk、C++、Java、Ada、C#語言的實現(xiàn)都需要編譯系統(tǒng)的支持,學(xué)習(xí)內(nèi)容,語言結(jié)構(gòu)的描述與分析語義的描述與實現(xiàn)框架程序設(shè)計語言的工作原理用途:計算機語言的實現(xiàn)與設(shè)計復(fù)雜數(shù)據(jù)處理(廣義)特征:十分復(fù)雜的數(shù)據(jù)處理比較成熟的理論基礎(chǔ)指導(dǎo)軟件設(shè)計實踐,第一章計算機語言的實現(xiàn),程序的解釋執(zhí)行如:BASIC、DOS命令,問題:效率低下,解釋程序,源程序,輸入數(shù)據(jù),計算結(jié)果,程序的編譯執(zhí)行,目標程序:機器語言匯編語言,編譯程序,運行系統(tǒng),目標程序,輸入數(shù)據(jù),計算結(jié)果,源程序,1.1編譯系統(tǒng)的需求分析,源程序的分析詞法、語法、語義目標程序的綜合語句的翻譯、代碼生成標識符的綁定(binding)變量:存儲單元函數(shù):目標代碼序列,1.2編譯過程,自然語言的翻譯過程:Iwishyousuccess主語謂語間接賓語直接賓語識別單詞(拼寫正確)、語法檢查(順序格式)、語義理解(合理)、組織譯文(符合原文、通順),一個C程序的編譯過程,源程序:main(){printf(“hello”);}1.詞法分析分析字符序列;識別單詞(種別、屬性)查詞法錯誤;標識符登記;,結(jié)果IDNmain‘(’‘)’‘{’IDNprintf‘(’STRhello‘)’‘;’‘}’,2.語法分析,分析單詞序列;識別語法結(jié)構(gòu);查語法錯誤;構(gòu)造分析樹;,3.語義分析,確認標識符的屬性類型、作用域等語義檢查運算的合法性、取值范圍等子程序的靜態(tài)綁定代碼存儲的相對地址變量的靜態(tài)綁定數(shù)據(jù)存儲的相對地址,程序使用的內(nèi)存空間,字符串常數(shù)hello?臨時變量t?目標代碼main?編譯程序負責(zé)為各變量、常數(shù)和函數(shù)計算并分配必要的內(nèi)存空間,,,,4.生成中間代碼,中間語言簡單規(guī)范機器無關(guān)易于優(yōu)化與轉(zhuǎn)換按照語法分析樹生成中間語言代碼,翻譯例Z=(X+0.48)*Y/W;結(jié)果(三地址代碼)T1=X+0.48T2=T1*YZ=T2/W,5.中間代碼優(yōu)化中間代碼的優(yōu)化處理,以求提高執(zhí)行效率6.目標代碼生成將中間代碼轉(zhuǎn)換成目標機上的機器指令代碼或匯編代碼,MOVR0,#12,ADDR0,#4MULR0,R2匯編指令代碼,100000010001110010000010000101001100010000010010機器指令代碼,編譯程序的結(jié)構(gòu),源程序,目標程序,其他模塊,表格管理輔助語法檢查、語義檢查完成靜態(tài)綁定、管理編譯過程錯誤處理詞法:拼寫...語法:語句結(jié)構(gòu)、表達式結(jié)構(gòu)...語義:類型不匹配...,編譯程序的軟件結(jié)構(gòu),編譯前端目標機無關(guān)部分詞法分析、語法分析、中間代碼生成語義分析、中間代碼優(yōu)化編譯后端目標機相關(guān)部分目標代碼優(yōu)化目標代碼生成多遍掃描常見:前段1.2.和后端1.2.,程序設(shè)計環(huán)境,集成化的程序設(shè)計環(huán)境編輯程序編譯程序連接程序-----將目標程序連接成可執(zhí)行程序調(diào)試工具-----跟蹤、分析常見:TurboC/C++VisualStudioforC/C++,Basic等JBuilder,BlueJ,1.3編譯技術(shù)的通用性,把復(fù)雜數(shù)據(jù)看作一條語句數(shù)據(jù)格式的分析利用詞法分析、語法分析方法數(shù)據(jù)處理的框架基于語法制導(dǎo)的語義處理框架編譯技術(shù)可以用于各種復(fù)雜數(shù)據(jù)的分析處理,例1-1(1/2),DOS命令date的輸出格式例:9-2-1993、09-03-1993、9-03-93語法date→month-day-year詞法month→DIGDIG|DIGday→DIGDIG|DIGyear→DIGDIG|DIGDIGDIGDIG,例1-1(2/2),語義year(年)、month(月)、day(日)語義約束條件0- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 北京工業(yè)大學(xué) 廖湖聲編
鏈接地址:http://m.italysoccerbets.com/p-12816941.html