第7單元符號(hào)表(編譯原理)_第1頁(yè)
第7單元符號(hào)表(編譯原理)_第2頁(yè)
第7單元符號(hào)表(編譯原理)_第3頁(yè)
第7單元符號(hào)表(編譯原理)_第4頁(yè)
第7單元符號(hào)表(編譯原理)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

內(nèi)容提要:第8章符號(hào)表組織----語(yǔ)義分析之二8.1符號(hào)表的地位和作用8.2符號(hào)表的組織與管理8.3符號(hào)表的結(jié)構(gòu)設(shè)計(jì)8.4符號(hào)表的構(gòu)造過(guò)程示例

8.5運(yùn)行時(shí)刻存儲(chǔ)分配合肥師范學(xué)院計(jì)算機(jī)系18.1符號(hào)表的地位和功能

符號(hào)表是標(biāo)識(shí)符的動(dòng)態(tài)語(yǔ)義詞典,屬于編譯中語(yǔ)義分析的知識(shí)庫(kù);主要內(nèi)容:⑴名字

標(biāo)識(shí)符源碼,用作查詢關(guān)鍵字;⑵類型

--該標(biāo)識(shí)符的數(shù)據(jù)類型及其相關(guān)信息;⑶種類

--該標(biāo)識(shí)符在源程序中的語(yǔ)義角色;⑷地址--與值單元相關(guān)的一些信息;①定義和重定義檢查;②類型匹配校驗(yàn);③數(shù)據(jù)的越界和溢出檢查;④值單元存儲(chǔ)分配信息;⑤函數(shù)、過(guò)程的參數(shù)傳遞與校驗(yàn);…

符號(hào)表的功能標(biāo)識(shí)符四種語(yǔ)義信息合肥師范學(xué)院計(jì)算機(jī)系28.2符號(hào)表的組織與管理8.2.1符號(hào)表的工作原理⑴遇定義性標(biāo)識(shí)符(在說(shuō)明中)---把語(yǔ)義信息填入表中,并修改其TOKEN的指針,使其指向相應(yīng)的表項(xiàng):(i,)該標(biāo)識(shí)符符號(hào)表項(xiàng)⑵遇應(yīng)用性標(biāo)識(shí)符(在語(yǔ)句中)---查符號(hào)表的相應(yīng)項(xiàng),查到后修改其TOKEN的指針,使其指向相應(yīng)的表項(xiàng):8.2.2符號(hào)表的數(shù)據(jù)結(jié)構(gòu)線性表、順序表、索引表和散列表,皆可以采用。(i,)該標(biāo)識(shí)符符號(hào)表項(xiàng)合肥師范學(xué)院計(jì)算機(jī)系38.2.3符號(hào)表的維護(hù)、管理方式※一個(gè)源文件有若干個(gè)函數(shù)組成,通常,每個(gè)函數(shù)對(duì)應(yīng)一個(gè)符號(hào)表,此外,還是有一個(gè)公用符號(hào)表;※符號(hào)表如何管理?往往取決于所屬語(yǔ)言的程序結(jié)構(gòu),就C語(yǔ)言來(lái)說(shuō),可以在內(nèi)存設(shè)置一定長(zhǎng)度的符號(hào)表區(qū),并建立適當(dāng)?shù)乃饕龣C(jī)制,訪問(wèn)相應(yīng)的符號(hào)表:公用符號(hào)表FUNCTION2符號(hào)表FUNCTION1符號(hào)表…現(xiàn)行函數(shù)符號(hào)表全局符號(hào)表區(qū)局部符號(hào)表區(qū)

…索引機(jī)制合肥師范學(xué)院計(jì)算機(jī)系4FUNCTIONexp(x:REAL;VARy:INTEGER):REAL;CONSTpai=3.14;TYPEarr=ARRAY[1..5,1..10]OFINTEGER;VARa:arr;b,a:real;BEGIN…;a[2,5]:=100;b:=z+8;…END;8.3符號(hào)表的結(jié)構(gòu)設(shè)計(jì)【例8.1】有下列函數(shù)過(guò)程:⑴需要進(jìn)符號(hào)表的標(biāo)識(shí)符:exp(函數(shù),附帶信息:類型、參數(shù)情況和入口地址…),pai(常量),arr(類型),a(下標(biāo)變量),b(簡(jiǎn)單變量),…⑵怎樣檢查出:a

重定義、z

無(wú)定義以及下表變量a[2,5]的值地址在何處?…合肥師范學(xué)院計(jì)算機(jī)系5※符號(hào)表的體系結(jié)構(gòu)設(shè)計(jì)

由于標(biāo)識(shí)符的種類不同,導(dǎo)致語(yǔ)義屬性也不盡相同;怎樣組織符號(hào)表?下面提供一個(gè)符號(hào)表的體系結(jié)構(gòu):SYNBL(符號(hào)表)

NAMETYPECATADDR

…PFINFL(函數(shù)表)CONSL(常量表)AINFL(數(shù)組表)RINFL(結(jié)構(gòu)表)VALL(活動(dòng)紀(jì)錄)LENL(長(zhǎng)度表)TYPEL(類型表)

TVALTPOINT·…名字類型種類地址tokeni·合肥師范學(xué)院計(jì)算機(jī)系68.3.1符號(hào)表總表(SYNBL)NAMETYPCATADDR※結(jié)構(gòu):NEME(名字)—

標(biāo)識(shí)符源碼(或內(nèi)部碼)TYP(類型)–

指針,指向類型表相應(yīng)項(xiàng);CAT(種類)–

種類編碼:

f(函數(shù)),c(常量),t(類型),d(域名),

v,vn,vf(變量,換名形參,賦值形參);ADDR(地址)–

指針,根據(jù)標(biāo)識(shí)符的種類不同,分別指向:PFINFL,CONSL,LENL,VALL,…合肥師范學(xué)院計(jì)算機(jī)系78.3.2類型表(TAPEL)※結(jié)構(gòu):TVALTPOINTTVAL(類碼)–

類型代碼:

i(整型),r(實(shí)型),c(字符型),b(布爾型),

a(數(shù)組型),d(結(jié)構(gòu)型),…TPOINT(指針)–

根據(jù)數(shù)據(jù)類型不同,指向不同的信息表項(xiàng):①基本數(shù)據(jù)類型(i,r,c,b)–nul(空指針);②數(shù)組類型(a)–

指向數(shù)組表;③結(jié)構(gòu)類型(d)–

指向結(jié)構(gòu)表;…

合肥師范學(xué)院計(jì)算機(jī)系88.3.3數(shù)組表(AINFL)

※結(jié)構(gòu):LOWUPCTPCLEN每維占表中一個(gè)紀(jì)錄LOW(數(shù)組的下界)--(C語(yǔ)言自動(dòng)設(shè)為:0);UP(數(shù)組的上界)—CTP(成分類型指針)–

指針,指向該維數(shù)組成分類型(在類型表中的信息);CLEN(成分類型的長(zhǎng)度)–

成分類型的數(shù)據(jù)所占值單元的個(gè)數(shù);

※這里假定:值單元個(gè)數(shù)依字長(zhǎng)為單位計(jì)算。合肥師范學(xué)院計(jì)算機(jī)系98.3.4結(jié)構(gòu)表(RINFL)

※結(jié)構(gòu):每個(gè)域占表中一個(gè)紀(jì)錄ID(結(jié)構(gòu)的域名)—OFF(區(qū)距)—是idk的值單元首址相對(duì)于所在記錄值區(qū)區(qū)頭位置;約定:off1=0,

off2=off1+LEN(tp1),……offn=offn-1+LEN(tpn-1)。

idn-1的長(zhǎng)度

TP(域成分類型指針)–

指針,指向idk域成分類型(在類型表中的信息);

ID

OFF

TP合肥師范學(xué)院計(jì)算機(jī)系108.3.5函數(shù)表(PFINFL)※結(jié)構(gòu):LEVELOFFFNENTRYPARAM…LEVEL(層次號(hào))–該過(guò)函靜態(tài)層次嵌套號(hào),OFF(區(qū)距)–該過(guò)函自身數(shù)據(jù)區(qū)起始單元相對(duì)該過(guò)函值區(qū)區(qū)頭位置;

FN(參數(shù)個(gè)數(shù))–

該過(guò)函的形式參數(shù)的個(gè)數(shù);

PARAM(參數(shù)表)–

指針,指向形參表;

ENTRY(入口地址)–

該函數(shù)目標(biāo)程序首地址(運(yùn)行時(shí)填寫(xiě));----

過(guò)程或函數(shù)語(yǔ)義信息合肥師范學(xué)院計(jì)算機(jī)系118.3.8其他表(…)

⑴常量表(CONSL)--存放相應(yīng)常量的初值;⑵長(zhǎng)度表(LENL)–

存放相應(yīng)數(shù)據(jù)類型所占值單元個(gè)數(shù);⑶活動(dòng)紀(jì)錄表(VALL)–

一個(gè)函數(shù)(或過(guò)程)虛擬的值單元存儲(chǔ)分配表;此分配表在運(yùn)行調(diào)用時(shí)才可用,故稱活動(dòng)紀(jì)錄?!Y(jié)構(gòu):※結(jié)構(gòu):

…合肥師范學(xué)院計(jì)算機(jī)系128.4符號(hào)表的構(gòu)造過(guò)程示例:ENT…2?v3vnitpyv2vfrtpx臨時(shí)變量值區(qū)b值y值

數(shù)組a值區(qū)

管理區(qū)exp值x值

鏈接表3.14501itp1011051aac,i,r,bv1v2v3v4v5t

arrv4vacrtppaiv5vrtpbv3vnitpyv2vfrtpxfrtpexpSYNBLPFINFLVALLCONSLLENLAINFLTYPEL合肥師范學(xué)院計(jì)算機(jī)系13【例8.2】有類型說(shuō)明:

TYPEarr=ARRAY[1..10]OFARRAY[1..5]OFINTEGER;

試填寫(xiě)符號(hào)表。

SYNBLTYPEL

i

r

c

bAINFLarra110a15itp設(shè):實(shí)型占8個(gè)存儲(chǔ)單元,整型占4個(gè)單元,布爾型和字符型占1個(gè)單元。

420tLENL200合肥師范學(xué)院計(jì)算機(jī)系14【例8.3】有類型說(shuō)明:試填寫(xiě)符號(hào)表。

SYNBLTYPELAINFLrecd110dbtp設(shè):實(shí)型占8個(gè)存儲(chǔ)單元,整型占4個(gè)單元,布爾型和字符型占1個(gè)單元。

1tLENLTYPErec=RECORDu:INTEGER;v:ARRAY[1..10]OFBOOLEAN;r:RECORDx,y:REALENDEND;i,r,c,bRINFLu0itpuitpd4v4avd10r14x0rtprtprrtpdxdd8y8yrtp81630合肥師范學(xué)院計(jì)算機(jī)系15【例8.4】試填寫(xiě)符號(hào)表。

SYNBLTYPELvf?rtp設(shè):實(shí)型占8個(gè)存儲(chǔ)單元,整型占4個(gè)單元,布爾型和字符型占1個(gè)單元。

?PROCEDUREP1(VARx:REAL;y:INTEGER);……BEGIN……END;ircbPFINFLrtpP1rtppxvny2yrtp有過(guò)程說(shuō)明:設(shè)P1所在層LEVEL=1,即所定義的層LEVEL=2,1P122?Entryxvn?vf?注:

?——

該標(biāo)識(shí)符的值單元首址,為相對(duì)地址(LEVEL,offset)

LEVEL——該標(biāo)識(shí)符所在層次號(hào),

offset——區(qū)距,存儲(chǔ)分配時(shí)可定。合肥師范學(xué)院計(jì)算機(jī)系168.5運(yùn)行時(shí)刻存儲(chǔ)分配※解決的問(wèn)題:標(biāo)識(shí)符變量的地址分配與對(duì)它們的訪問(wèn)。8.5.1標(biāo)識(shí)符值單元分配

值單元分配分兩類:

在編譯階段即可完成真實(shí)的地址分配。在編譯時(shí)對(duì)所有數(shù)據(jù)對(duì)象分配固定的存儲(chǔ)單元,且在運(yùn)行是始終保持不變。1.靜態(tài)分配2.動(dòng)態(tài)分配

指在運(yùn)行時(shí)刻進(jìn)行的值單元分配,在編譯時(shí)只能進(jìn)行相對(duì)地址分配。

·棧式動(dòng)態(tài)分配;

·堆式動(dòng)態(tài)分配。

值單元分配是以過(guò)程函數(shù)為單位的。

注:合肥師范學(xué)院計(jì)算機(jī)系178.5.2活動(dòng)記錄

1.三個(gè)概念過(guò)程:一個(gè)可執(zhí)行模塊,過(guò)程或函數(shù),通常完成特定的功能。活動(dòng):過(guò)函的一次執(zhí)行。每執(zhí)行一次過(guò)程體,則產(chǎn)生該過(guò)函的一個(gè)活動(dòng)。活動(dòng)記錄:一個(gè)有結(jié)構(gòu)的連續(xù)存儲(chǔ)塊。用來(lái)存儲(chǔ)過(guò)函一次執(zhí)行中所需要的信息。

如果不支持可變數(shù)據(jù)結(jié)構(gòu),活動(dòng)記錄的體積是可以在編譯時(shí)確定的。

活動(dòng)記錄僅是一種存儲(chǔ)映像,編譯程序所進(jìn)行的運(yùn)行時(shí)刻存儲(chǔ)分配是在符號(hào)表中進(jìn)行的。

合肥師范學(xué)院計(jì)算機(jī)系188.5.2活動(dòng)記錄(續(xù))

2.活動(dòng)記錄的結(jié)構(gòu)

臨時(shí)單元

內(nèi)情向量

局部變量

形式單元

靜態(tài)鏈

動(dòng)態(tài)鏈

返回地址VALLTOPSP連接數(shù)據(jù)局部數(shù)據(jù)(1)連接數(shù)據(jù)區(qū)·返回地址:

·動(dòng)態(tài)鏈:

指向調(diào)用該過(guò)程的主調(diào)程序的活動(dòng)記錄的指針;

·靜態(tài)鏈:

指向靜態(tài)直接外層活動(dòng)記錄的指針。

(2)形式單元用來(lái)存放實(shí)參的值或地址。

(3)局部數(shù)據(jù)區(qū)

用來(lái)存放局部變量、內(nèi)情向量、臨時(shí)單元。(4)棧指針SP

指向現(xiàn)行過(guò)程活動(dòng)記錄的起點(diǎn),即第一個(gè)單元;

TOP

—指向(已占用)棧頂單元,即活動(dòng)記錄的最后一個(gè)單元。

合肥師范學(xué)院計(jì)算機(jī)系198.5.3簡(jiǎn)單的棧式存儲(chǔ)分配

沒(méi)有分程序結(jié)構(gòu),過(guò)程定義不允許嵌套,但允許過(guò)程的遞歸調(diào)用。·以C語(yǔ)言為例:1.C語(yǔ)言程序的存儲(chǔ)組織

【例8.5】C語(yǔ)言過(guò)程調(diào)用關(guān)系:Main()Q()R()

則,活動(dòng)記錄棧狀態(tài)為:R的活動(dòng)記錄Q的活動(dòng)記錄Main的活動(dòng)記錄

全局?jǐn)?shù)據(jù)區(qū)TOPSP2.C的活動(dòng)記錄

臨時(shí)單元

內(nèi)情向量

局部變量

形式單元

參數(shù)個(gè)數(shù)

返回地址OldSPOldSP值,即前一活動(dòng)記錄的地址;

其中:SPTOP合肥師范學(xué)院計(jì)算機(jī)系208.5.3簡(jiǎn)單的棧式存儲(chǔ)分配(續(xù))

3.C語(yǔ)言的過(guò)程調(diào)用與返回(1)過(guò)程調(diào)用①過(guò)程調(diào)用的四元式序列:(param,entry(t1),_,_)

……(param,entry(tn),_,_)(call,entry(P),n,_)②

對(duì)應(yīng)的目標(biāo)指令:(i+3)[TOP]:=entry(ti).Addr

//將ti地址填到活動(dòng)記錄的形參區(qū)去

·(param,entry(ti),_,_)對(duì)應(yīng)的指令:·(call,entry(P),n,

_)對(duì)應(yīng)的指令:1[TOP]:=SP//保護(hù)現(xiàn)行SP3[TOP]:=n//傳遞參數(shù)個(gè)數(shù)JSPP第n個(gè)實(shí)參地址

過(guò)程P的入口地址

參數(shù)個(gè)數(shù)

……SPTOP主調(diào)過(guò)程活動(dòng)記錄子過(guò)程P的活動(dòng)記錄OldSP返回地址參數(shù)個(gè)數(shù)形參區(qū)t1………

……

t1

……主調(diào)過(guò)程活動(dòng)記錄SPTOP子過(guò)程P的活動(dòng)記錄SPn③子過(guò)程P需完成的工作:定義自己的活動(dòng)記錄;

SP:=TOP+1//定義過(guò)程P的SP1[SP]:=返回地址//保護(hù)返回地址TOP:=TOP+L//定義新TOPLSPSP返回地址TOPSPTOP合肥師范學(xué)院計(jì)算機(jī)系218.5.3簡(jiǎn)單的棧式存儲(chǔ)分配(續(xù))

3.C語(yǔ)言的過(guò)程調(diào)用與返回(2)過(guò)程返回①過(guò)程返回的四元式:(ret,_,_,_)

對(duì)應(yīng)的目標(biāo)指令:TOP:=SP-1//恢復(fù)TOPSP:=0[SP]//恢復(fù)SPX:=2[TOP]//取返回地址,X為某一變址器UJ0[X]//按X中的返回地址實(shí)行變址轉(zhuǎn)移

……

t1nSP

……主調(diào)過(guò)程活動(dòng)記錄子過(guò)程P的活動(dòng)記錄LSPTOPTOPTOPSPSPX返回地址返回地址X合肥師范學(xué)院計(jì)算機(jī)系228.5.4嵌套過(guò)程語(yǔ)言的棧式存儲(chǔ)分配

·過(guò)程嵌套的一個(gè)關(guān)鍵問(wèn)題:標(biāo)識(shí)符的作用域問(wèn)題

。

標(biāo)識(shí)符的作用范圍往往與它所處的過(guò)程相關(guān),也就是說(shuō),同一個(gè)標(biāo)識(shí)符,在不同的程序段里,代表不同的對(duì)象,具有不同的性質(zhì),因此要分配不同的存儲(chǔ)空間。

·標(biāo)識(shí)符的有效范圍:(1)在外層未定義,而在內(nèi)層定義的,服從內(nèi)層定義;(2)在外層已定義,而在內(nèi)層未定義的,服從全范圍;(3)在外層已定義,而在內(nèi)層也定義的,在外層服從外層定義,在內(nèi)層服從內(nèi)層定義。服從最小作用域原理;1.標(biāo)識(shí)符的作用域合肥師范學(xué)院計(jì)算機(jī)系232.活動(dòng)記錄8.5.4嵌套過(guò)程語(yǔ)言的棧式存儲(chǔ)分配(續(xù))

·問(wèn)題的提出:

過(guò)程Q可能會(huì)引用到它的任意外層過(guò)程的最新活動(dòng)記錄中的某些數(shù)據(jù)。

為了在活動(dòng)記錄中查找這些非局部名字所對(duì)應(yīng)的存儲(chǔ)空間,過(guò)程Q運(yùn)行時(shí)必須設(shè)法跟蹤它的所有外層過(guò)程的最新活動(dòng)記錄的地址。·解決問(wèn)題的思想:·解決方案:

活動(dòng)記錄中增加靜態(tài)鏈!使其指向直接外層的最新活動(dòng)記錄的首地址;

臨時(shí)單元

內(nèi)情向量

局部變量

形式單元

參數(shù)個(gè)數(shù)

靜態(tài)鏈

返回地址OldSPSPTOP連接數(shù)據(jù)合肥師范學(xué)院計(jì)算機(jī)系243.嵌套層次顯示表(display)和活動(dòng)記錄結(jié)構(gòu)(1)連接數(shù)據(jù)區(qū):用于訪問(wèn)外層的變量

OldSP返回地址全局Display地址參數(shù)個(gè)數(shù)……形式單元

……顯示區(qū)表(Display)……局部變量……內(nèi)情向量……臨時(shí)單元SPTOP0120~2;連接數(shù)據(jù)

·全局display地址—

主調(diào)過(guò)程的顯示區(qū)表首址;·老SP—

主調(diào)過(guò)程的活動(dòng)記錄首址;(2)參數(shù)個(gè)數(shù):3;3(3)形參值單元區(qū):4入口為4;·換名形參(vn)—

分配2個(gè)單元(地址傳遞);·賦值形參(vf)—

按相應(yīng)類型長(zhǎng)度分配;

l為層次號(hào),包含直接外層嵌套的l個(gè)過(guò)程的活動(dòng)記錄的首址,再加上本過(guò)程的活動(dòng)記錄首址;(4)顯示區(qū)表(display):占l+1個(gè)單元;l+1·類型標(biāo)識(shí)符、常量標(biāo)識(shí)符等不分配值單元;(5)局部變量區(qū):入口為off+l+2;·off為形參區(qū)最后一個(gè)值單元地址;·局部變量值單元按相應(yīng)類型長(zhǎng)度分配地址;編譯系統(tǒng)定義的變量,按局部變量值單元分配原則分配地址;(8)臨時(shí)變量區(qū):合肥師范學(xué)院計(jì)算機(jī)系254.Display表的建立則Q與R的display表的關(guān)系如下:

設(shè)過(guò)程調(diào)用關(guān)系為Q()

R(),且R()的層次號(hào)為l,OldSP返回地址全局Display地址參數(shù)個(gè)數(shù)……形式單元

……顯示區(qū)表(Display)……局部變量……內(nèi)情向量……臨時(shí)單元SPTOPOldSP返回地址全局Display地址參數(shù)個(gè)數(shù)……形式單元

……顯示區(qū)表(Display)……局部變量……內(nèi)情向量……臨時(shí)單元Q的活動(dòng)記錄

R的活動(dòng)記錄

拷貝l個(gè)單元

拷貝自身的SPl+1個(gè)單元合肥師范學(xué)院計(jì)算機(jī)系26【例8.8】0programP;vara,x:integer;

1procedureQ(b:integer);vari:integer;

2procedureR(u:integer;varv:integer);varc,d:integer;beginifu=1thenu=u+1;u,v

……

c,dv:=(a+c)+(b-d);

……

b,iend{R}begin

……R(1,x);

……

a,xend{Q}

1procedureS;varc,i:integer;begina:=1;c,iQ(c);

……end{S}begina:=0;S;

……end.層次:設(shè)有Pascal程序片段如下:變量作用域:過(guò)程調(diào)用關(guān)系為:PSQR

合肥師范學(xué)院計(jì)算機(jī)系27試給出程序運(yùn)行時(shí)的活動(dòng)記錄關(guān)系?!纠?.8】局部變量Display表參數(shù)個(gè)數(shù)全局Display返回地址OldSPP的活動(dòng)記錄(0層)0001230405-8a9-12x局部變量Display表參數(shù)個(gè)數(shù)全局Display返回地址OldSP局部變量Display表形式單元參數(shù)個(gè)數(shù)全局Display返回地址OldSP局部變量Display表形式單元參數(shù)個(gè)數(shù)全局Display返回地址OldSPS的活動(dòng)記錄(1層)040013ci13141518171819-2223-26Q的活動(dòng)記錄(1層)1317272829130b31-340353627i37-40R的活動(dòng)記錄(2層)2741423543244u45-48v49-5002741515253cd54-5758-61R活動(dòng)記錄Q活動(dòng)記錄S活動(dòng)記錄P活動(dòng)記錄活動(dòng)記錄棧a-(0,5)x-(0,9)c-(1,6)i-(1,10)b-(1,4)i-(1,10)u-(2,4)v-(2,8)c-(2,15)d-(2,19)合肥師范學(xué)院計(jì)算機(jī)系285.值單元的地址分配

·值單元分配是依據(jù)活動(dòng)記錄的結(jié)構(gòu),在符號(hào)表中進(jìn)行的。

設(shè)有Pascal程序片段如下,P1所在層level=2;【例8.7】PROCEDUREP1(x:REAL;VARy:BOOLEAN);CONSTpai=3.14;TYPEarr=ARRAY[1..10]OFINTEGER;VARm:INTEGER;a:arr;l:REAL;FUNCTIONF1(z:REAL;k:INTEGER):REAL;BEGIN……END;

……;BEGIN

……;END;試給出符號(hào)表組織及值單元分配情況。

設(shè):(1)實(shí)型占8個(gè)存儲(chǔ)單元,整型占4個(gè)單元,布爾型和字符型占1個(gè)單元。

(2)換名形參vn分配2個(gè)單元,賦值形參vf按相應(yīng)類型長(zhǎng)度分配;合肥師范學(xué)院計(jì)算機(jī)系29接上頁(yè):SYNBLi,r,c,bTYPELPFINFLP1的VALLCONSLLENLAINFL局部變量Display表形式單元參數(shù)個(gè)數(shù)全局Display返回地址OldSP·過(guò)程P1定義的層次為l=301234-1112-131415161718-2122-61P1p332Entryxx2rtpvf(3,4)xrtpvf(3,4)(3,12)yybtpbtpvnvny(3,12)(4,4)pairtpc3.14arra110itp4t40mitpvm(3,18)ava(3,22)lrtpvl62-69(3,62)F1rtpp432Entryzzkkrtprtpitpitpvfvfvfvf(4,4)(4,12)(4,12)合肥師范學(xué)院計(jì)算機(jī)系30※習(xí)題:【習(xí)題8.1】解釋下述詞語(yǔ):⑴符號(hào)表;⑵標(biāo)識(shí)符的語(yǔ)義信息;⑶符號(hào)表的功能;(4)c語(yǔ)言符號(hào)表的管理方式?!玖?xí)題8.2】設(shè)有程序片斷如下,試填寫(xiě)符號(hào)表:

floatexe(x,y)intx,y[5][10];{floata;intb[5][10];

…b[2,5]=15;…}

※如何確定下表變量b[2][5]的地址?合肥師范學(xué)院計(jì)算機(jī)系31Z->S1(0)S->a2A3(1)|b4B5(2)A->06A7(3)|18(4)B->09B10(5)|111(6)第5章習(xí)題解答【習(xí)題5.10】

:【習(xí)題5.10】P100_4.10考慮文法:G(S)S->aA|bB;A->0A|1;B->0B|1⑴構(gòu)造活前綴的DFA(即句柄識(shí)別器)【解】※擴(kuò)展文法,編碼:①②③⑥⑦⑧⑨⑩0+SaA0OKr(1)r(3)r(4)r(2)bA1B0④0Br(5)r(6)111011※活前綴的DFA(即句柄識(shí)別器):∵句柄識(shí)別器(DFA)中無(wú)沖突狀態(tài)!∴G(S)是LR(0)文法!⑵是LR(0)文法嗎?⑤合肥師范學(xué)院計(jì)算機(jī)系32第5章習(xí)題解答【習(xí)題5.10】

:B1011109

9r(5)r(5)r(5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論