編譯原理知識(shí)點(diǎn)總結(jié) 哈工程_第1頁
編譯原理知識(shí)點(diǎn)總結(jié) 哈工程_第2頁
編譯原理知識(shí)點(diǎn)總結(jié) 哈工程_第3頁
編譯原理知識(shí)點(diǎn)總結(jié) 哈工程_第4頁
編譯原理知識(shí)點(diǎn)總結(jié) 哈工程_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——編譯原理知識(shí)點(diǎn)總結(jié)哈工程第一章概論

1.什么是編譯器?輸入輸出?

編譯器是將一種語言翻譯為另一種語言的計(jì)算機(jī)程序。輸入:源語言(sourcelanguage)編寫的程序

輸出:目標(biāo)語言(targetlanguage)編寫的程序。

2.匯編語言的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):匯編語言大大提高了編程的速度和確鑿度

缺點(diǎn):編寫起來也不簡(jiǎn)單,閱讀和理解很難;而且匯編語言的編寫嚴(yán)格依靠于特定的機(jī)器,所以為一臺(tái)計(jì)算機(jī)編寫的代碼在應(yīng)用于另一臺(tái)計(jì)算機(jī)時(shí)必需完全重寫。

3.什么是解釋器?與編譯器的區(qū)別?

解釋程序是宛如編譯器的一種語言翻譯程序。

與編譯器的區(qū)別:它馬上執(zhí)行源程序而不是生成在翻譯完成之后才執(zhí)行的目標(biāo)代碼。

4.喬姆斯基分類結(jié)構(gòu)有幾種文法?名稱?相互關(guān)系?4種名稱:

0型無限制文法1型上下文相關(guān)文法2型上下文無關(guān)文法3型正則文法

相互關(guān)系:其中的每一個(gè)都是其前者的專門化。

5.什么是掃描器?掃描器的功能是什么?掃描器就是語法分析程序。

功能:依據(jù)詞法規(guī)則,分析由字符組成的源程序,把它分割為一個(gè)一個(gè)具有獨(dú)立意義的最小語法單位,即單詞。

6.什么是編輯器?IDE中編輯器的新功能

編譯器尋常接受由任何生成標(biāo)準(zhǔn)文件(例如ASCII文件)的編輯器編寫的源程序。

IDE中編輯器的新功能:盡管編輯器依舊生成標(biāo)準(zhǔn)文件,但會(huì)轉(zhuǎn)向正被探討的程序設(shè)計(jì)語言的格式或結(jié)構(gòu)。這樣的編輯器稱為基于結(jié)構(gòu)的,且它早已包括了編譯器的某些操作;因此,程序員就會(huì)在程序的編寫時(shí)而不是在編譯時(shí)就得知錯(cuò)誤了。從編輯器中也可調(diào)用編譯器以及與它共用的程序,這樣程序員無需離開編輯器就可執(zhí)行程序。

7.什么是調(diào)試器,與編譯器的關(guān)系

調(diào)試程序是可在被編譯了的程序中判定執(zhí)行錯(cuò)誤的程序。

運(yùn)行一個(gè)帶有調(diào)試程序的程序與直接執(zhí)行不同,這是由于調(diào)試程序保存著所有的或大多數(shù)源代碼信息(諸如行數(shù)、變量名和過程)。它還可以在預(yù)先指定的位置(稱為斷點(diǎn))暫停執(zhí)行,并提供有關(guān)已調(diào)用的函數(shù)以及變量的當(dāng)前值的信息。為了執(zhí)行這些函數(shù),編譯器必需為調(diào)試程序提供恰當(dāng)?shù)姆?hào)信息。

8.編譯器有哪幾個(gè)功能模塊?各模塊的功能及輸入輸出

源代碼掃描程序記號(hào)語法分析程序語法樹語義分析程序常量表解釋樹中間代碼生成符號(hào)表中間代碼錯(cuò)誤處理器源代碼優(yōu)化程序中間代碼代碼生成器目標(biāo)代碼目標(biāo)代碼優(yōu)化程序目標(biāo)代碼9.編譯器有哪幾個(gè)輔助部件?功能?(1)常量表:

存放在程序中用到的常量和字符串(2)符號(hào)表:

與標(biāo)識(shí)符有關(guān):函數(shù)、變量、常量以及數(shù)據(jù)類型。

與編譯器的所有階段交互:掃描程序、分析程序或?qū)?biāo)識(shí)符輸入到表格中的語義分析程序。(3)錯(cuò)誤處理器

對(duì)源程序中錯(cuò)誤的反應(yīng)。

10.分析,綜合

已將分析源程序以計(jì)算其特性的編譯器操作歸為編譯器的分析部分,而將生成翻譯代碼時(shí)所涉及到的操作稱作編譯器的綜合部分。當(dāng)然,詞法分析、語法分析和語義分析均屬于分析部分,而代碼生成卻是綜合部分。在優(yōu)化步驟中,分析和綜合都有。分析正趨向于易懂和更具有數(shù)學(xué)性,而綜合則要求更深的專業(yè)技術(shù)。因此,將分析步驟和綜合步驟兩者區(qū)分開來以便發(fā)生變化時(shí)互不影響是很有用的。

11.前段,后端

將編譯器分成了只依靠于源語言(前端)的操作和只依靠于目標(biāo)語言(后端)的操作兩部分。

12.遍

編譯器發(fā)現(xiàn),在生成代碼之前屢屢處理整個(gè)源程序很便利。這些重復(fù)就是遍。

13.靜態(tài)語義?哪幾類?

程序的語義確定程序的運(yùn)行,但是大多數(shù)的程序設(shè)計(jì)語言都具有在執(zhí)行之前被確定而不易由語法表示和由分析程序分析的特征。這些特征被稱作靜態(tài)語義。

一般的程序設(shè)計(jì)語言的典型靜態(tài)語義包括聲明和類型檢查。由語義分析程序計(jì)算的額外信息(諸如數(shù)據(jù)類型)被稱為屬性,它們尋常是作為解釋或“裝飾〞增加到樹中(還可將屬性添加到符號(hào)表中)。

14.編譯器中第一個(gè)考慮目標(biāo)機(jī)的物理特性的模塊是:代碼生成器

______

15.T型圖中|ST|S,T,H分別代表什么?

|H|

語言H(代表宿主語言)編寫的編譯器將語言S(代表源語言)翻譯為語言T(代表目標(biāo)語言)

16.T型圖描述自舉及移植的過程

其次章詞法分析

正則表達(dá)式三種基本操作選擇,連結(jié),重復(fù)(閉包)

有窮自動(dòng)機(jī)的組成元素

開始狀態(tài),終止?fàn)顟B(tài),狀態(tài)轉(zhuǎn)換函數(shù)

正則表達(dá)式

a.十六進(jìn)制數(shù)字串([0-9]|[A-F])+(x|X)

b.包含奇數(shù)個(gè)a或奇數(shù)個(gè)b(b*ab*a)*ab*|(a*ba*b)*ba*c.包含偶數(shù)個(gè)a或偶數(shù)個(gè)b(a*ba*b)*a*|(b*ab*a)*b*d.a或b必需成對(duì)出現(xiàn)(aa|b)*(a|bb)*

從正則表達(dá)式到NFA(Thompson結(jié)構(gòu))(1)并置

(2)選擇

(3)重復(fù)

DFA:

構(gòu)成

{S,∑,T,S0,A}S

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論