編譯原理(山東聯(lián)盟-山東財經(jīng)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋山東財經(jīng)大學(xué)_第1頁
編譯原理(山東聯(lián)盟-山東財經(jīng)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋山東財經(jīng)大學(xué)_第2頁
編譯原理(山東聯(lián)盟-山東財經(jīng)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋山東財經(jīng)大學(xué)_第3頁
編譯原理(山東聯(lián)盟-山東財經(jīng)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋山東財經(jīng)大學(xué)_第4頁
編譯原理(山東聯(lián)盟-山東財經(jīng)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋山東財經(jīng)大學(xué)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

編譯原理(山東聯(lián)盟-山東財經(jīng)大學(xué))知到智慧樹章節(jié)測試課后答案2024年秋山東財經(jīng)大學(xué)第一章單元測試

下述描述錯誤的是()。

A:機器語言程序是由0或1組成,能被機器直接識別并執(zhí)行B:高級語言程序必須經(jīng)過編譯或解釋,才能被機器執(zhí)行C:匯編語言程序是由助記符組成,能被機器直接識別并執(zhí)行D:高級語言程序很接近自然語言,不能被機器直接識別和執(zhí)行

答案:匯編語言程序是由助記符組成,能被機器直接識別并執(zhí)行編譯程序是一種()。

A:翻譯程序B:匯編程序C:目標程序D:解釋程序

答案:翻譯程序()不是編譯程序的組成部分。

A:詞法分析程序B:中間代碼生成程序C:語法分析程序D:接口管理程序

答案:接口管理程序編譯程序中,語法分析器的輸入是()。

A:短語B:表達式C:句子D:單詞

答案:單詞編譯過程分成若干“遍”的主要目的是()。

A:利用有限的機器內(nèi)存且提高機器的使用效率B:使程序的結(jié)構(gòu)更為清晰C:利用有限的機器內(nèi)存但降低機器的使用效率D:提高程序的執(zhí)行效率

答案:使程序的結(jié)構(gòu)更為清晰C語言編寫的源程序,每次執(zhí)行都要邊解釋邊執(zhí)行。

A:錯B:對

答案:錯語法分析的任務(wù)是將輸入的單詞序列轉(zhuǎn)換成各種語法短語。

A:對B:錯

答案:對編譯程序的前端部分是和目標機器無關(guān)的分析部分。

A:錯B:對

答案:對語義分析是在語法分析之后進行。

A:錯B:對

答案:對編程程序生成的目標程序是機器語言編寫的指令。

A:錯B:對

答案:錯

第二章單元測試

符號串a(chǎn)bc的前綴有()個。

A:4B:3C:2D:1

答案:4符號串x=ab,符號串y=abc,x和y的乘積(或稱:連接)得到的符號串是()。

A:abcB:cababC:a2b2cD:ababc

答案:ababc語法樹的構(gòu)成方法有()種。

A:1B:3C:4D:2

答案:2Chomsky文法分類中,2型文法又稱為()。

A:一般文法B:正規(guī)文法C:上下文有關(guān)文法D:上下文無關(guān)文法

答案:上下文無關(guān)文法已知文法:G(E):

E→T|E+T

T→F|T*F

F→i

該文法的一個句子i1+i2*i3中,句柄是()。

A:i1B:i2*i3C:i3D:i2

答案:i1詞法分析器的輸出包括單詞的()。

A:長度B:地址C:自身值D:種別(也稱:類別)

答案:自身值;種別(也稱:類別)空串ε的長度為0.

A:錯B:對

答案:對bc和cb是兩個不同的符號串。

A:錯B:對

答案:對字母表的克林閉包(kleene)一定包含符號ε。

A:錯B:對

答案:對短語、直接短語、句柄都是句型的成分。

A:對B:錯

答案:對

第三章單元測試

請根據(jù)下述DFA的狀態(tài)圖,完成DFA最小化的操作。若將圖中從0到5共6個狀態(tài)劃分為三個狀態(tài)子集,{0},{1,2,4}和{3,5},

答案:無已知不確定的有窮自動機NFA的狀態(tài)圖如下圖所示:

請完成下述狀態(tài)轉(zhuǎn)換表,圖中帶圈的數(shù)字表示狀態(tài)的編號。

答案:無1、已知不確定的有窮自動機NFA=({X,Y,Z},{0,1},f,{X},{Z}),其中映射關(guān)系f:f(X,0)={Z}

f(X,1)={X}

f(Y,0)={X,Y}

f(Z,0)={X,Z}

f(Z,1)={Y},請補全下列狀態(tài)轉(zhuǎn)換表。

答案:無

第四章單元測試

已知文法G(E)如下:E→TE’

E’→+E|ε

T→FT’

T’→T|ε

F→PF’F’→*F’|ε

P→(E)|a|b|^完成下列判定該文法是否是LL(1)文法的工作。

答案:不是LL(1)文法。

第五章單元測試

已知拓展文法G(S)的產(chǎn)生式如下:S¢?EE?aA|bBA?cA|dB?cB|d實現(xiàn)由項目集的方法構(gòu)造LR(0)分析表,完成下列題目。

答案:無法直接提供完整的LR(0)分析表,因為這需要詳細的項目集閉包、移進-歸約和沖突解決等過程,這些內(nèi)容超出了僅提供答案的范疇。但是,我可以告訴你構(gòu)造LR(0)分析表的一般步驟,以及指出在這個特定文法中會使用到的一些關(guān)鍵概念:1.**構(gòu)造項目集**:首先,從文法的開始符號出發(fā),創(chuàng)建初始項目集,該集合包含文法的起始符號S引入的項目S'->.S。然后,對每個項目進行閉包操作,擴展項目集直到不再有新項目加入。2.**識別項目集的轉(zhuǎn)移**:對于每個項目集中的項目A->α.Bβ(點在B前),檢查B能夠推導(dǎo)出的第一個符號,并為該符號創(chuàng)建或找到相應(yīng)的項目集。3.**構(gòu)造分析表**:分析表由兩部分組成,一部分是狀態(tài)(即項目集標識),另一部分是動作(移進、歸約或接受)。對于每個狀態(tài)和每個輸入符號,決定采取的操作:-**移進**:如果遇到一個符號可以導(dǎo)致進入新的項目集,則標記為移進。-**歸約**:如果項目集中存在形如A->α.的項目,說明產(chǎn)生了文法規(guī)則A->α,此時考慮是否歸約。-**接受**:當?shù)竭_包含S'->S.的項目集時,如果輸入結(jié)束,標記為接受。4.**處理沖突**:LR(0)分析器不允許任何沖突(移進-移進、歸約-歸約、移進-歸約)。如果在構(gòu)建過程中發(fā)現(xiàn)沖突,通常需要修改文法或采用更復(fù)雜的解析技術(shù)(如SLR、LALR或LR(1))。針對您給出的文法,由于缺乏具體項目集的構(gòu)建細節(jié)和閉包過程的展示,我不能直接提供最終的LR(0)分析表。但你可以按照上述步驟,逐步構(gòu)建項目集、確定轉(zhuǎn)移并填充分析表,注意檢查是否存在沖突。如果文法是LR(0)的,你應(yīng)該能順利完成這個過程;如果不是,可能需要調(diào)整文法或采用更高級的解析算法。

第六章單元測試

某屬性文法,產(chǎn)生式S→B關(guān)聯(lián)的語義計算包括{B.f:=S.f},據(jù)此判斷.f是()屬性。

A:綜合屬性B:繼承屬性C:遺傳屬性D:具體屬性

答案:繼承屬性某屬性文法,產(chǎn)生式E→T關(guān)聯(lián)的語義計算包括{E.val:=T.val},據(jù)此判斷.val屬性應(yīng)該在()語法分析過程中進行語義計算。

A:從左到右B:自底向上C:自頂向下D:從右到左

答案:自底向上某屬性文法,產(chǎn)生式B→Bb關(guān)聯(lián)的語義計算是B→{B1.in_num:=B.in_num}B1b{B.num:=B1.num-1},在自頂向下語法分析時,對于應(yīng)該先計算的屬性描述正確的是()。

A:繼承屬性.numB:繼承屬性.in_numC:綜合屬性.in_numD:綜合屬性.num

答案:繼承屬性.in_num某屬性文法中,為產(chǎn)生式A→Aa關(guān)聯(lián)的語義計算可以是{A.n→A.n+1}。

A:錯B:對

答案:錯S-屬性文法的語義技術(shù)是自底向上進行。

A:對B:錯

答案:對語法制導(dǎo)的語義計算是指在語義分析的同時,順便進行語法分析和檢查。

A:對B:錯

答案:錯原來的文法G(S)的基礎(chǔ)上,為其文法符號關(guān)聯(lián)具有特定意義的屬性,并為產(chǎn)生式關(guān)聯(lián)語義計算或條件謂詞,就構(gòu)成屬性文法。

A:錯B:對

答案:對終結(jié)符號的屬性值來自詞法分析的結(jié)果。

A:對B:錯

答案:對既有繼承屬性又有綜合屬性的文法是L-屬性文法。

A:對B:錯

答案:對基于屬性文法的語義計算更適合在語法分析時實現(xiàn)語義計算。

A:錯B:對

答案:錯

第七章單元測試

(a+b)/(c-d)對應(yīng)的逆波蘭式(后綴式)是()。

A:ab+cd-/B:abcd+/-C:abcd-/+D:ab+cd/-

答案:ab+cd-/表達式(a+b)/c-(a+b)*d對應(yīng)的三元式形式,(a+b)的運算結(jié)果用()表示。

A:(a+b)B:1C:a+bD:(1)

答案:(1)已知產(chǎn)生式S→ifBthenS1,其語義規(guī)則{B.true:=newlable;B.false:=S.next;S1.next:=S.next;S.code:=B.code‖gen(B.true':')‖S1.code},下列描述正確的有()

A:S.next是整個語句執(zhí)行完的下一條語句標號B:newlable表示生成一個新的語句標號C:此處newlable的值是S1語句塊的第一個語句標號D:.next是繼承屬性,所以跳轉(zhuǎn)前需要先確定語句塊S的下一條語句標號

答案:S.next是整個語句執(zhí)行完的下一條語句標號;newlable表示生成一個新的語句標號;此處newlable的值是S1語句塊的第一個語句標號;.next是繼承屬性,所以跳轉(zhuǎn)前需要先確定語句塊S的下一條語句標號后綴式表示法可以不用括號,因為只要知道每個算符的目數(shù),就能對它進行無歧義的分解計算。

A:對B:錯

答案:對在DAG圖中,每個節(jié)點對應(yīng)一個運算符。

A:錯B:對

答案:對三元式和四元式都屬于三地址碼。

A:錯B:對

答案:對靜態(tài)語義分析的任務(wù)最主要是檢查程序結(jié)構(gòu)(控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu))的一致性和完整性。

A:錯B:對

答案:對賦值語句x:=x+5的四元式描述是(:=x5x)。

A:錯B:對

答案:錯無條件跳轉(zhuǎn)語句gotoL的四元式描述是(gotoL--),其中“-”表示此處不填。

A:錯B:對

答案:對算術(shù)表達式在語義分析時直接轉(zhuǎn)換成三地址碼指令,不需要回填。

A:對B:錯

答案:對

第八章單元測試

編譯的各個階段都可能要用到符號表。

A:對B:錯

答案:對對一般的程序設(shè)計而言,其編譯程序的符號表應(yīng)包含哪些內(nèi)容及何時填入信息不能一概而論。

A:錯B:對

答案:對符號表中符號的常見屬性,最關(guān)鍵的是符號名,要求不同符號的符號名盡可能不要相同。

A:對B:錯

答案:對符號的作用域是通過其在符號表中是否可見體現(xiàn)的。

A:對B:錯

答案:錯符號表可以是單表結(jié)構(gòu),也可以是多表結(jié)構(gòu),若采用多表結(jié)構(gòu),還需要維護一個作用域棧。

A:錯B:對

答案:對一般來說,符號表中的信息可以視為兩大欄:名字欄和信息欄

A:錯B:對

答案:對符號表可以用來幫助做名字的作用域分析。

A:對B:錯

答案:對符號表常用的操作不包括()。

A:刪除一個或一組無用的項B:對給定名字,往表中填寫或更新它的某些信息C:查詢給定的名字是否已在表中D:檢查名字是否符合標識符命名的文法

答案:檢查名字是否符合標識符命名的文法目標代碼生成階段,對符號名進行地址分配的依據(jù)是()。

A:符號表B:預(yù)測分析表C:符號棧D:DFA

答案:符號表編譯程序使用()區(qū)別名字的作用域。

A:說明名字的過程或函數(shù)名B:說明名字的過程或函數(shù)的動態(tài)層次號C:說明名字的過程或函數(shù)的靜態(tài)層次號D:名字的行號

答案:說明名字的過程或函數(shù)的靜態(tài)層次號

第九章單元測試

以下關(guān)于數(shù)據(jù)存儲的說法錯誤的是(

)。

A:目標程序在目標機中運行時,都置身在一個連續(xù)的邏輯地址空間B:目標程序代碼通常存放在靜態(tài)代碼區(qū),過程/函數(shù)存放在動態(tài)數(shù)據(jù)區(qū)的棧區(qū)C:程序運行時,存儲空間需要為機器的操作系統(tǒng)和體系結(jié)構(gòu)等代碼預(yù)留一部分存儲空間D:在靜態(tài)數(shù)據(jù)區(qū),數(shù)據(jù)對象并不是一個字節(jié)一個字節(jié)連續(xù)存放,存放時需要“留白”處理,目的是為了“邊界對齊”

答案:目標程序在目標機中運行時,都置身在一個連續(xù)的邏輯地址空間關(guān)于數(shù)據(jù)對象存儲分配的描述正確的是()。

A:數(shù)據(jù)對象中,常量存放在靜態(tài)數(shù)據(jù)區(qū),變量存放在動態(tài)數(shù)據(jù)區(qū)B:無論何種編程語言,若要使用堆式存儲模式,就必須編寫編寫函數(shù)顯式分配和釋放存儲空間C:C語言中,所有的函數(shù)以棧式分配模式存儲D:編譯完成就能確定變量個數(shù)和數(shù)據(jù)大小的存放在靜態(tài)數(shù)據(jù)區(qū),只有運行時才能確定數(shù)據(jù)對象數(shù)量和大小的存放在動態(tài)數(shù)據(jù)區(qū)

答案:數(shù)據(jù)對象中,常量存放在靜態(tài)數(shù)據(jù)區(qū),變量存放在動態(tài)數(shù)據(jù)區(qū)關(guān)于過程/函數(shù)的活動記錄描述錯誤的是()。

A:為最大限度提高存儲空間的利用率,一個函數(shù)在棧區(qū)僅保留一份活動記錄B:過程/函數(shù)的活動記錄在過程/函數(shù)被調(diào)用時創(chuàng)建,運行中訪問并/或修改,調(diào)用結(jié)束撤銷C:過程/函數(shù)的活動記錄中變量的信息,有的是變量的值,有的是變量指代的偏移地址D:過程/函數(shù)的活動記錄存放著控制類信息、實際參數(shù)值、過程/函數(shù)聲明的變量、臨時變量等

答案:為最大限度提高存儲空間的利用率,一個函數(shù)在棧區(qū)僅保留一份活動記錄關(guān)于過程/程序塊嵌套時,活動記錄的相關(guān)描述正確的是()。

A:過程/函數(shù)的返回值傳遞時,通常值傳遞不可靠,要用地址傳遞方式B:過程/函數(shù)的返回值是由被調(diào)用過程/函數(shù)產(chǎn)生的運算結(jié)果,要存放在被調(diào)用過程/函數(shù)的活動記錄中C:過程/程序塊的活動記錄中,可以增加一個區(qū)域,專門存放靜態(tài)鏈和動態(tài)鏈信息,通過動態(tài)鏈進行訪問D:過程/程序塊的活動記錄中,增加一個存儲單元,記錄作用域?qū)訑?shù)信息,按照內(nèi)層變量可以訪問外層變量的規(guī)則進行訪問

答案:過程/程序塊的活動記錄中,可以增加一個區(qū)域,專門存放靜態(tài)鏈和動態(tài)鏈信息,通過動態(tài)鏈進行訪問存儲組織中,為某些量動態(tài)分配存儲空間的含義正確是()。

A:源程序中某些量動態(tài)分配存儲空間時,可以采取棧式存放,也可以堆式存放。但是二選一,一旦確定后,所有同類型變量都采用統(tǒng)一的存放模式B:在編譯階段為源程序的某些量進行分配存儲空間,運行時只能訪問不能修改C:在運行時為源程序的某些量分配存儲空間D:在編譯階段為源程序的某些量進行分配存儲空間,運行時再進行動態(tài)調(diào)整

答案:在編譯階段為源程序的某些量進行分配存儲空間,運行時再進行動態(tài)調(diào)整對于下面的高級語言程序:

procedureP(X,Y,Z);

begin

Y:=Y+1;

Z:=Z+X;

endP;

begin

A:=2;

B:=3;

P(A+B,A,A);

printA

end

若參數(shù)傳遞的方法為傳值,程序執(zhí)行時所輸出的A是(

)

A:7B:8C:2D:9

答案:2一個目標程序運行所需的存儲空間包括()。

A:存放數(shù)據(jù)項目的空間B:存放程序運行的控制數(shù)據(jù)所需單元C:存放目標代碼的空間D:存放程序運行的連接數(shù)據(jù)所需單元

答案:存放數(shù)據(jù)項目的空間;存放程序運行的控制數(shù)據(jù)所需單元;存放目標代碼的空間;存放程序運行的連接數(shù)據(jù)所需單元對于下面的嵌套過程語言的程序,按照最近嵌套原則進行作用域分

析,下面說法正確的是()

programP

vara,b:integer;

procedureP1(i1,j1:integer);

varc,d:integer;

...

end;

procedureP2(i2,j2:integer);

vara,c:integer;

procedureP21;

varb1,b2:boolean;

...

end;

...

end;

...

end;

A:子程序P2可以訪問子程序P1中的變量cB:子程序P21可以訪問子程序P2中的形式參數(shù)i2C:子程序P1可以調(diào)用子程序P21D:子程序P21可以調(diào)用子程序P1

答案:子程序P21可以訪問子程序P2中的形式參數(shù)i2;子程序P21可以調(diào)用子程序P1對于在編譯時不能確定程序運行時數(shù)據(jù)空間的大小、允許遞歸調(diào)用的程序設(shè)計語言,一般采取靜態(tài)存儲分配策略。

A:錯B:對

答案:錯一個程序設(shè)計語言只能提供一種參數(shù)傳遞機制。

A:錯B:對

答案:錯

第十章單元測試

屬于基本塊的優(yōu)化措施是()。

A:刪除多余運算,常量合并和傳播B:刪除冗余或無用代碼,代碼外提C:強度削弱,循環(huán)合并D:代碼外提,刪除歸納變量

答案:刪除多余運算,常量合并和傳播關(guān)于程序流圖的描述錯誤的是()。

A:無法通過流圖進行基本塊優(yōu)化B:流圖的每一個節(jié)點是一個基本塊C:流圖是編譯器內(nèi)部維護的一個抽象數(shù)據(jù)結(jié)構(gòu)D:流圖反映了程序執(zhí)行過程的遍歷路徑

答案:無法通過流圖進行基本塊優(yōu)化關(guān)于循環(huán)的描述正確是()。

A:對大多數(shù)應(yīng)用程序而言,絕大多數(shù)運行時間都在循環(huán)部分,所以代碼優(yōu)化主要是針對循環(huán)體的優(yōu)化B:歸納變量刪除是將循環(huán)體出現(xiàn)的歸納變量直接刪除C:循環(huán)優(yōu)化是針對循環(huán)體中語句的優(yōu)化,包括與循環(huán)有關(guān)的和與循環(huán)無關(guān)的優(yōu)化D:代碼外提是將循環(huán)體中所有循環(huán)的不變量移到循環(huán)體前面

答案:循環(huán)優(yōu)化是針對循環(huán)體中語句的優(yōu)化,包括與循環(huán)有關(guān)的和與循環(huán)無關(guān)的優(yōu)化關(guān)于代碼優(yōu)化描述錯誤的是()。

A:從中間代碼到目標代碼要進行多次變換,每次變換都是一次優(yōu)化過程B:優(yōu)化的目標是生成運行速度更快、占用存儲空間更小的目標代碼,但往往二者很難同時達到最優(yōu)C:代碼的優(yōu)化和目標機有關(guān),因此,針對不同目標機要進行不同的優(yōu)化操作D:優(yōu)化的過程是不斷追求最優(yōu)的過程,但往往是“沒有最優(yōu),只有更優(yōu)”

答案:代碼的優(yōu)化和目標機有關(guān),因此,針對不同目標機要進行不同的優(yōu)化操作關(guān)于基本塊的描述正確的是()。

A:只有一個出口語句,但可以有多個入口語句B:只有一個入口語句和一個出口語句C:只有一個入口語句,但可以有多個出口語句D:入口語句和出口語句不能是同一個,否則無法區(qū)分到底是入口語句還是出口語句

答案:只有一個入口語句,但可以有多個出口語句有關(guān)基本歸納變量的作用,錯誤的是

A:計算其它同族歸納變量B:自身定值C:控制循環(huán)D:記錄循環(huán)的結(jié)果

答案:記錄循環(huán)的結(jié)果利用DAG進行局部優(yōu)化,不能實現(xiàn)

A:刪除公共子表達式B:代碼外提C:刪除無用賦值D:合并已知量

答案:代碼外提對于基本快內(nèi)Out集合由In集合計算出來,而對于基本塊之間,In集合由前驅(qū)基本塊的Out集合計算出來。這樣的數(shù)據(jù)流問題屬于

A:任意路徑問題B:向前流問題C:向后流問題D:全路徑問題

答案:向前流問題強度削弱是指把程序中執(zhí)行時間較長的運算替換為執(zhí)行時間較短的運算

A:錯B:對

答案:對DAG是有向無環(huán)圖,利用DAG可實現(xiàn)局部優(yōu)化

A:錯B:對

答案:對

第十一章單元測試

代碼生成時,對于寄存器中最新的計算結(jié)果一定要馬上送回主存單

A:對B:錯

答案:錯下列說法正確的是

A:指令的代價是源地址模式的附加代價加1B:指令的代價是源地址模式的附加代價和目標地址模式

溫馨提示

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

評論

0/150

提交評論