




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第1章:1、名詞:解釋器/解釋程序 interpreter;編譯器/編譯程序 compiler;翻譯器/翻譯程序 translator。三者的區別與聯系。虛擬機(如JAVA虛擬機JVM、Tiny語言虛擬機)是哪種程序?(1)解釋器(也稱為解析程序)則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯后的程序運行的快的.(2)編譯器(也稱為編譯程序)是把源程序的每一條語句都編譯成機器語言,并保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快; (3)翻譯器(也稱為翻譯程序)是一種系統程序,它將計算機編程語言編寫的程序翻譯成另外一種
2、計算機語言的一般來說等價的程序,主要包括編譯程序和解釋程序,匯編程序也被認為是翻譯程序。程序的最初形式稱為源程序或者源代碼,翻譯后的形式被稱為目標程序或者目標代碼。大多數翻譯程序是將高級語言編寫的程序翻譯為機器語言形式的可執行程序。但是也有些翻譯程序將源程序翻譯成其他高級語言或者字節碼等中間形式。(4)解釋器翻譯源程序時不生成獨立的目標程序,而編譯器則將源程序翻譯成獨立的目標程序。解釋器是另外種形式的語言處理器,它相當于不生成上面的目標程序,直接將輸入“放到”源程序中,然后經過解釋器,就得到了輸出。通常情況下,編譯過程比解釋過程更快,但解釋器能夠有更好的錯誤診斷,因為解釋器是逐句進行解釋的。編
3、.0譯器和解釋器可以結合起來進行處理,Java語言處理器就是其中的代表,其過程是源程序經過翻譯器處理后得到中間程序,也被稱作字節碼(bytecode),然后和輸入共同加入到虛擬機(virtual machine)的前端,得到輸出,其前一部分用到編譯器,后一部分用到解釋器,這樣做的好處是一個機器解釋的代碼可以應用在另外的機器上,甚至可以延伸到網絡上。2、編譯過程圖示 P5 圖1-1第3章:1、Chomsky語言文法分類,程序語言的語法是哪一類,詞法是哪一類,其產生式有什么特點。(教材,但歸納得不好,參看課件)下面4種文法構成的語言類成為喬姆斯基層次(Chomskyhierarchy)(1)0型文
4、法:(非限制的) (2)1型文法:(上下文無關文法) (3)2型文法:(上下文無關文法) (4)3型文法:(正則文法) 2、名詞:上下文無關文法的文法、語言、文法二義性、語言先天二義性、分析樹、最左推導、最右推導。(1)上下文無關文法:在計算機科學中,若一個形式文法 G = (N, , P, S) 的 產生式規則都取如下的形式:V -> w,則稱之為上下文無關的,其中 VN ,w(N)* 。上下文無關文法取名為“上下文無關”的原因就是因為字符 V 總可以被字串 w 自由替換,而無需考慮字符 V 出現的上下文。一個形式語言是上下文無關的,如果它是由上下文無關
5、文法生成的條目上下文無關語言。(2)語言:或稱為記號的正規串集,上下文無關文法規則確定了為由規則定義的結構的記號符號符合語法的串集(3)文法二義性:指可生成帶有兩個不同分析樹的串的文法稱為二義性文法。二義性問題不可判定:不存在一個算法,它能在有限步驟內,確切判定任給的一個文法是否為二義的;二義存在性證明是只要找到一個句子,該句子對應兩個不同的語法樹,即證明該文法是二義的。解決二義性的基本方法:設置一個規則,該規則可在每個二義性的情況下指出哪一個分析樹(語法樹)是正確的;將文法改變成一個強制正確分析樹的構造格式。(4)語言先天二義性:如果產生上下文無關語言的每一個文法都是二義的,則說此語言是先天
6、二義的。(5)分析樹(語法樹)(6)最左推導:是指它的每一步中最左的非終結符都要被替換的推導。(7)最右推導:是指它的每一步中最右的非終結符都要被替換的推導。第4章:1、遞歸下降語法分析程序構造過程;對給定的一個上下文無關文法:(1)改寫成EBNF;(4.1.2的兩個例子,注意對有左公因子和直接左遞歸的產生式如何改寫)(2)根據EBNF直接編寫函數。重復類型:使用while循環編程如改寫成EBNF的例子:EàEA|B改為EàBA編程:E() B(); while(token) /token是A的起始終結符 A(); 選擇類型:使用if語句 如改寫為EBNF的例子:E
7、4;A|AB 改為EàAB,中括號代表0或1次可選 編程:E() A(); if(token) /token是B能導出的起始終結符 B(); 第6章:語義分析1、程序語言中的語義分析一般包括哪些內容? 答:變量定義和類型檢查。其中變量定義中需要檢查變量是否符合先定義后使用和變量的語義檢查;在類型檢查中:包括賦值語句、表達式、數組下標越界檢查、函數調用(參數傳遞)的檢查等。2、名詞:屬性文法(上下文無關文法中增加文法符號的語義屬性,以及語義規則);靜態屬性;動態屬性;繼承屬性;合成屬性 (1)屬性文法:是在上下文無關文法的基礎上為每個文法符號(終結符或非終結符)配備若干個相關的“值“(
8、成為屬性)。這些屬性代表與文法符號相關的信息,例如它的類型、值、代碼序列、符號表內容等。屬性和變量一樣,可以進行計算和傳遞。(2)繼承屬性、合成屬性: 合成屬性用于“自下而上“傳遞信息。在語法樹中,一個結點的合成屬性的值由其子結點的屬性值確定。通常使用自底向上的方法在每個結點處使用語義最終計算合成屬性的值。繼承屬性用于“自上而下”傳遞信息。在語法樹中,一個結點的繼承屬性由此結點的父結點和或兄弟結點的某些屬性確定。用繼承屬性來表示程序語言結構中的上下文依賴關系很方便。 (3)靜態屬性、動態屬性: 屬性的計算及將計算機與正在討論的語言結構聯系的過程稱作屬性的聯編。在執行之前聯編的屬性稱作靜態的;而
9、只在執行期間聯編的屬性是動態的。第7章:1、運行環境分類:完全靜態環境、基于棧的、完全動態環境。 (1)完全靜態環境:是最簡單的運行時環境類型,它的所有數據都是靜態的,且執行程序期間在存儲器中保持固定。這樣的環境可用來實現沒有指針或動態分配,且過程不可遞歸調用的語言。在這樣的環境中,保留每個活動記錄的簿記信息開銷相對較小,而且也不需要再活動記錄中保存有關環境的額外信息(而不是返回地址) (2)基于棧的運行環境:必須以一個基于棧的風格來分配活動的記錄,即當進行一個新的過程調用(活動記錄壓入)時,每個新的活動記錄都分配在棧的頂部,而當調用退出時則再次解除分配(活動記錄彈出)。活動記錄的棧,也叫運行時棧或調用棧就隨著程序執行時發生的調用鏈生長或縮小。每個過程每次在調用棧上可以有若干個不同的活動記錄,每個都代表一個不同的調用。這樣的環境要求的簿記和變量訪問的技術比完全靜態環境要求復雜。特別地,活動記錄中必須
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國暖手器專用溫控器數據監測研究報告
- 1.功能描述以R225LC7為例履帶式挖掘機行走依靠液壓馬
- 2025年中國新帝21UX液晶數位屏數據監測研究報告
- 2025年中國數字耦合無線話筒數據監測研究報告
- 2025年中國超臨界葉黃素市場調查研究報告
- 妊娠合并多囊腎科普講座
- 肇慶市實驗中學高中生物二:現代生物進化理論的由來高效課堂教學設計
- 肇慶市實驗中學高中歷史三:第課西學東漸教案
- 新鄉市重點中學2025年初三(5月)第二次質量測試生物試題試卷含解析
- 2025年中國爐排長銷市場調查研究報告
- 對公客戶信息泄露應急預案
- 教科版五年級科學下冊全套測試卷
- 塞外山城張家口
- 13.外墻涂料工程質量樣板驗收表格
- 玻璃馬蹄焰池窯課程設計說明書
- 多發傷及復合傷的搶救處理流程
- 房室結折返性心動過速
- 歷史學科中考復習方法交流
- GB/T 6284-2006化工產品中水分測定的通用方法干燥減量法
- GB/T 4025-2010人機界面標志標識的基本和安全規則指示器和操作器件的編碼規則
- GB/T 22080-2016信息技術安全技術信息安全管理體系要求
評論
0/150
提交評論