资源描述:
《《编译原理引论教学资料》编译原理小总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、几道例题L1何谓源程序、目标程序、翻译程序、编译程序和解釋程序?它们之间可能有何种关系?解:源程序是指以某种程序设计语言所编写的程序。目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(冃标语言)的程序。翻译程序是将某种语言翻译成另一种语言的程序的统称。编译程序与解释程序均为翻译程序,但二者工作方法不同。解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。即边解释边执行,翻译所得的指令序列并不保存。编译程序的特点是先将高级语言程序
2、翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。即先翻译、后执行。1.2一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么?解:一-般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、符号表管理程序、错误检查处理程序组成。1.3选择一种你所熟悉的程序设计语言,试列出此语言中的全部关健字,并通过上机使用该语言以判明这些关键字是否为保留字。解:C语言的关键字有:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatfor
3、gotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile。上述关键字在C语言中均为保留字。1.4选取一种你所熟悉的语言,试对它进行分析,以找出此语言中的括号以及逗号有多少种不同的用途。解:C语言屮括号有三种:{},[],()。其中,{}用于语句括号;[]用于数组;()用于函数(定义与调用)及表达式运算(改变运算顺序)。逗号在C语言小被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)
4、的值为d)。2」设有字母表Al={a,b,...,z},A2={0,l,...,9},试冋答下列问题:(1)字母表A1上长度为2的符号串有多少个?26*26=676(2)集合A1A2含有多少个元素?26*10=260(3)列出集合Al(A1UA2)*中的全部t度不大于3的符号串。a,b,c,d,・・・,z,a0,al,a2,・・・,a9,aa,ab,ac,・・・az,个数:26+26*36+26*36*36=346582.2试分别构造产生下列语言的文法。(1){anbn
5、n>0};G[S]:S-*aSb
6、e(2){anbracp
7、n,m,p>0};G[S]:S->aS
8、AbO,
9、bl…,bz,,zO…zz,A->bA
10、BBfcB
11、s(3){an#bn
12、n>0}U{cn#dn
13、n>0};G[SJ:S-*A
14、BA—aAb
15、#B-*cBd
16、#⑷{w#w「#
17、wW{0,1}*,w「是将w的符号按逆序排列所得的符号串};G[S]:S->A#A-OAO
18、1A1
19、#(5)任何不是以0开始的所有奇整数所组成的集合;G[SJ:S-川BJJ-1
20、3
21、5
22、7
23、9I-*J
24、2
25、4
26、6
27、8B-*0B
28、IB
29、8(6)所有由偶数个0和偶数个1所组成的符号串的集合。G[S]:S->0A
30、1B
31、eA-OS
32、1CB-*OC
33、1SC-OB
34、1A2.3试描述由下列文法所产生的语言的特点(文法
35、的开始符号均为S)o(1)S->10S0S->aAA->bAA->aL(G)={(10)nabma0n
36、n,m>0}o(2)S->SSS->1AOA->1AOA->£产生的句子中,0、1个数相同,并且若干相接的1后必然紧接数量相同连续的Oo(3)S—bAdcAtAGSGfA—a产生的句子中,是以ba开头de结尾的串,且ba^de个数相同。(4)S->aSSS->a奇数个a组成的字符串2.4考察文法G=(Vn,Vt,P,S),其中:Vn={S,A,B,C,D,E,F,G}Vi-{a},P={S—ABC,JBC,C->A,BAtGE,BG—GBF,AG->AD,DB->BD,DE—
37、AE,FB—BF,FE—>Ea,AA—>e}(1)指出此文法的类型:0型2.5设已给文法G[〈程序〉]:〈程序〉-〈分程序〉
38、〈复合语句〉〈分程序〉〈无标号分程序〉
39、〈标号〉:〈分程序〉〈复合语句〉->〈无标号复合语句〉
40、〈标号〉:〈复合语句〉〈无标号分程序〉-〈分程序首部〉;〈复合尾部〉〈无标号复合语句〉-begin〈复合尾部〉〈分程序首部〉-begin〈说明〉
41、〈分程序首部〉;〈说明〉〈复合尾部〉->〈语句〉end
42、〈语句〉;〈复合尾部〉〈说明〉一>d〈语句〉ts〈标号〉fL(1)给岀句