編譯原理-試題_第1頁(yè)
編譯原理-試題_第2頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、1997 年編譯原理試題1(10 分)某操作系統(tǒng)下合法的文件名為device:name.exten其中第一部分(device:)和第三部分(.exten)可缺省,若device, name 和exten都是字母串,長(zhǎng)度不限,但至少為 1,畫出識(shí)別這種文件名的確定有限自。2(20 分)a.下面的二義文法描述命題演算公式,為它寫一個(gè)等價(jià)的非二義文法。S S and S | S or S | not S | p | q | (S)下面文法是否為L(zhǎng)L(1)文法?說明理由。b.S A B | P Q xP d P | A x yB b cQ a Q | 3(10 分)某些語(yǔ)言允許給出名字表的一個(gè)屬性表,

2、也允許明里面,下面文法抽象這個(gè)問題。D attrlistnamelist|attrlist (D) namelist id, namelist |idattrlist A attrlist |AA decimal |fixed |float |real嵌在另一個(gè)聲D attrlistnamelist 的含義是:在namelist 中的任何名字有attrlist 中給出的所有屬性。D attrlist (D) 的含義是:在括號(hào)中的提到的所有名字有attrlist中給出的所有屬性,而不管嵌套多少層。 寫一個(gè)翻譯方案,它將每個(gè)名字的屬性個(gè)數(shù)填入符號(hào)表。為簡(jiǎn)單起見,若屬性重復(fù)出現(xiàn),則重復(fù)計(jì)數(shù)。4(10

3、 分)把表達(dá)式-(a+b)*(c+d)+(a+b+c)翻譯成四元式。5(10 分)由于文法二義引起的 LR(1)分析動(dòng)作,可以依據(jù)消除二義的規(guī)則而得到 LR(1)分析表,根據(jù)此表可以正確識(shí)別輸入串是否為相應(yīng)語(yǔ)言的句子。對(duì)于非二義非LR(1)文法引起的 LR(1)分析動(dòng)作的,是否也可以依據(jù)什么規(guī)則來消除 LR(1)分析動(dòng)作的而得到 LR(1)分析表,并且根據(jù)此表識(shí)別相應(yīng)語(yǔ)言的句子?若可以,你是否可以給出這樣的規(guī)則?6(5 分) UNIX 下的 C 編譯命令cc 的選擇項(xiàng)g 和 O 的解釋如下,其中dbx的解釋是“dbx is an utility for source-level debuggi

4、ng and execution of programs written in C”。試說明為什么用了選擇項(xiàng)g 后,選擇項(xiàng)O 便被忽略。-gProduce additional symboltableinformationfordbx(1) and dbxtool(1) and pass -lg option to ld(1)(soastoincludetheglibrary,tis:/usr/lib/libg.a).When this option is given, the-O and -R options are suppressed.-OlevelOptimize the object

5、 code.Ignored when either -g,-go,or -a is used.7(15 分)下面程序在SUN 工作站上運(yùn)行時(shí)陷入死循環(huán),試說明原因。如果將第 8 行的long *p 改成short *p,并且將第 23 行l(wèi)ong k中的循環(huán)體執(zhí)行一次便停止了。試說明原因。main()addr();loop();改成short k 后,looplong *p;loop()long i,j;j=0;for(i=0;i10;i+) (*p)-;j+;addr()long k;k=0;p=&k;8(15 分)下面程序的結(jié)果是 120。但是如果把第 10 行的 abs(1)改成 1 的

6、話,則程序結(jié)果是 1。試分析為什么會(huì)有這不同的結(jié)果。fact()sici=5;if(i=0) return(1);else i=i-1; return(i+abs(1)*fact();main()prf(factor of 5 = %dn, fact();9(5 分)在文件stdlib.h 中,關(guān)于qsort 的外部extern void qsort(void *, size_t, size_t, (*)(const void *, const void *);如下:下面C 程序所在的文件名是type.c,用Solaris C 編譯器編譯時(shí),錯(cuò)誤信息如下:type.c, line 24: warning: argument ispatible with prototype: arg #4請(qǐng)你對(duì)該程序略作修改,使得該警告錯(cuò)誤能,并且不改變程序的結(jié)果。注:程序中關(guān)于變量 astHypo 和 n 的賦值以及其它部分被略去。Solaris C 比ANSI C 有更嚴(yán)格的靜態(tài)檢查。#include typedef structAve; doubleProb;HYPO;HYPO*astHypo;n;pare(HYPO *stHypo1, HYPO *stHypo2)if (stHypo1-ProbstHypo2-Prob) return(-1);else if (

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論