INT 0 A
在过程目标程序的入口处,开辟 A 个单元的数据段。A 为局部变量的个数+3。 OPR 0 0
在过程目标程序的出口处,释放数据段(退栈),恢复调用该过程前正在运行的过程的 数据段基址寄存器 B 和栈顶寄存器 T 的值,并将返回地址送到指令地址寄存器 P 中,以使
调用前的程序从断点开始继续执行。 CAL L A
调用过程,完成填写静态链、动态链、返回地址,给出被调用过程的基地址值,送入基 址寄存器 B 中,目标程序的入口地址 A 的值送指令地址寄存器 P 中,使指令从 A 开始执行。
第 6 题
给出对 PL/0 语言作如下功能扩充时的语法图和 EBNF 的语法描述。
(1) 扩充条件语句的功能使其为:
if〈条件〉then〈语句〉[else〈语句〉]
(2) 扩充 repeat 语句为:
repeat〈语句〉{;〈语句〉}until〈条件〉
答案:
对 PL/0 语言作如下功能扩充时的语法图和 EBNF 的语法描述如下:
(1) 扩充条件语句的语法图为:
EBNF 的语法描述为: 〈条件语句〉::= if〈条件〉then〈语句〉[else〈语句〉]
(2) 扩充 repeat 语句的语法图为:
EBNF 的语法描述为: 〈 重复语句〉::= repeat〈语句〉{;〈语句〉}until〈条件〉
第 3 章 文法和语言
第 1 题
文法 G=({A,B,S},{a,b,c},P,S)其中 P 为:
S→Ac|aB
A→ab
B→bc
写出 L(G[S])的全部元素。
答案:
L(G[S])={abc}
第 2 题
文法 G[N]为:
N→D|ND
D→0|1|2|3|4|5|6|7|8|9
G[N]的语言是什么?
答案:
G[N]的语言是 V+。V={0,1,2,3,4,5,6,7,8,9}
N=>ND=>NDD.... =>NDDDD...D=>D......D
或者:允许 0 开头的非负整数?
第3题
为只包含数字、加号和减号的表达式,例如 9-2+5,3-1,7等构造一个文法。
答案:
G[S]:
S->S+D|S-D|D
D->0|1|2|3|4|5|6|7|8|9
第 4 题
已知文法 G[Z]:
Z→aZb|ab
写出 L(G[Z])的全部元素。
答案:
Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbb
L(G[Z])={anbn|n>=1}
第 5 题
写一文法,使其语言是偶正整数的集合。
(1) 允许 0 打头;
(2)不允许 0 打头。
答案:
(1)允许 0 开头的偶正整数集合的文法 E→NT|D T→NT|D
N→D|1|3|5|7|9 D→0|2|4|6|8
(2)不允许 0 开头的偶正整数集合的文法 E→NT|D T→FT|G
N→D|1|3|5|7|9 D→2|4|6|8 F→N|0 G→D|0
第 6 题
要求:
已知文法 G:
<表达式>::=<项>|<表达式>+<项>
<项>::=<因子>|<项>*<因子>
<因子>::=(<表达式>)|i
试给出下述表达式的推导及语法树。
(5)i+(i+i)
(6)i+i*i
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新医药卫生编译原理(第2版)课后习题答案详解 (4)全文阅读和word下载服务。
相关推荐: