|
东 北 大 学 继 续 教 育 学 院
7 Z+ ^/ w" Y. m. r: Z0 o0 I 编 译 方 法X 试 卷(作业考核 线上2) A 卷(共 5 页)
& c( c/ A, Y+ a2 L: t: x) }5 J总分 题号 一 二 三 四 五 六 七 八 九 十
9 w7 Q$ o$ N8 f) q* L" {7 f- l 得分 5 c/ K5 x1 I3 |2 P, k3 a
一、更多资料下载:谋学网(www.mouxue.com)(在备选资料中选出一个正确资料,每题3分,共30分)
& E1 Y f% ]$ o" y01. 程序设计语言一般分为( )和( )两大类, 其中低级语言通常又称为( )
( E5 ~5 I( e: L/ c1 t4 iA. 高级语言,低级语言,通用程序语言8 T7 D3 L3 E; J
B. 专用程序语言,高级语言,低级语言
- d5 D1 h1 D6 g- @1 M9 x, x- SC. 专用程序语言,低级语言,面向机器的语言
9 E6 P8 M% h- o& z6 HD. 高级语言,低级语言,面向机器的语言
% E1 }5 @# I. `% F02. 如果编译程序生成的目标是机器代码程序, 则源程序的执行分成两大阶段:( )和( )5 \ s4 e4 z+ z- I; E: L- G
A. 编辑阶段, 运行阶段
+ M6 g0 z( w) U$ a4 Z7 xB. 编译阶段, 连接阶段
& l# Y1 u+ G2 wC. 编译阶段, 运行阶段
5 d4 j+ ~( w O; R+ vD. 编辑阶段, 连接阶段, [' {: [" V" ^/ `
03.已知文法G(E) : " O6 t7 R; y5 q% q& I- f& O0 B
E -> T|E+T|E-T W+ ~& f' z: N
T -> F|T*F|T/F" m/ ?; h% @; ]/ W" [! E) \
F -> i|(E)
" x4 ]5 H) y( y- ^/ h2 r该文法的开始符号是: ( ), 终结符集合VT是( ),非终结符集合VN是( ),句型T+T*F+i的短语有( )
% q4 A2 B0 d) QA. E; {+,-,*,/,(,)}; {E,T,F}; T+T*F+i, T+T*F, T,T*F,i
$ U/ }$ _2 q5 f/ d% q* L7 d# dB. T; {+,-,*,/,i,(,)}; {E,T,F}; T+T*F+i, T+T*F, T,T*F,i7 {7 H w% ^! Q; o6 w" p* G( M! M+ ?
C. E; {+,-,*,/,i,(,)}; {E,T,F}; T+T*F+i, T+T*F, T,T*F,i1 L% W! {- C6 ?# T) j0 g, ~
D. T; {+,-,*,/,i,(,)}; {E,T,F}; T+T*F+i, T+T*F, T,T*F/ D: E5 C d5 r' ` c
04. 文法G所描述的语言是( )的集合 ) r @$ Q" o2 I _
A. 文法G的字符表∑中所有符号组成的符号串/ l. p$ T$ u$ b! }3 c4 c2 g0 V, }
B. 文法G的字符表∑的闭包∑*中的所有符号串
5 ]( K) \4 d5 E( a V7 ^C. 由文法的开始符号推出的所有符号串- k. f0 ~. l* |
D. 由文法的开始符号推出的所有终结符号串3 R8 A& o6 c4 d( O9 i
05. 有限状态自动机可定义如下五元组:FA=(Q ,∑,Q0 , F ,δ),其中:( )
+ z4 v; A' c* e1 w6 E% k. uA. Q - 状态集合 ,∑ - 字母表,Q0 - 开始状态集合 ,F - 结束状态集合,δ -状态变换函数 ;5 W8 b" c! F. K
B. Q - 状态集合 ,∑ - 字母表,Q0 - 开始状态集合 ,F - 结束状态集合 ,δ - 产生式 ;
4 g8 D. U3 M1 a, |/ I7 k1 T' \C. Q - 状态集合 ,∑ - 字母表,Q0 - 开始状态集合 ,F - 结束状态 ,δ -状态变换函数 ;. b. C1 G1 v& R# E- l
06. 词法分析的单词识别中,区分关键字和标识符的方法,通常是把拼得的字符串首先查( ) , 若( )则视为( ) , 否则为( )- p1 r2 O- J1 C& j
A. 关键字表, 查到, 关键字, 标识符0 }; |# Y# w6 A" Y* K6 y
B. 关键字表, 查不到, 关键字, 标识符8 _; |5 t8 V) v* n; h7 @6 B
C. 标识符表, 查到, 关键字, 标识符% ]4 a$ x& A9 v3 \
D. 关键字表, 查到, 标识符, 关键字
3 u5 P ^9 o% y* [. F07. 程序设计语言单词通常可分如下四类( )
: x1 D6 W) Y3 p% `A. 关键字, 标识符, 常数, 界符
0 ]/ e2 ?1 K8 \* r$ q" sB. 关键字, 变量, 常数, 界符
/ c6 e; t% e1 z) z, ]( y9 XC. 整型 , 字符型, 俘点型, 布尔型 l g0 |: Z. l* P" R1 |' w
08. 编译过程中, 语法分析器的任务是( )$ d, u- m/ I6 z. H& `: H; K4 ?
(1)分析单词是怎样构成的# ^( Z3 r. S. c, c+ g3 d9 O
(2)分析单词串是如何构成语句和说明的' x; {+ V" X( ~# M) f
(3)分析语句和说明是如何构成程序的
% U/ W* r( b8 U$ m3 |(4)分析程序的结构; p, v3 G p, Y, N
A. (2)和(3)
- B8 U. _7 l! ]" fB. (4)
. L- U; x$ x9 z3 R+ k( y$ fC. (2),(3),(4) ! J% W2 Q0 m/ N- |
D. (1),(2),(3),(4)# c9 n! Q0 u* r& G& U7 J
09. 设有文法 G(S): 3 d, W6 x! S7 \* L( y
S --> a A c | a A S | b
+ n8 [& k1 ~: N7 P f) d) n2 y) \A --> d S A | c
" a) {1 d ?6 {% r( o指出下述符号串中,哪些是该文法的句子?
( i4 w; z& v0 }4 h q' O: \6 {+ _abcdb, acc, acabc, adbcb, acbac;
) E5 A# {% p5 z* b8 EA. abcdb / g4 j3 J: L j7 A
B. acabc, adbcb
# \! K0 i4 m0 s4 TC. acc, acabc, acbac
( A0 S/ `+ X6 YD. acc, adbcb 0 |. }9 e/ t) S' @1 C) V
10. 编译程序在其工作过程中使用最多的数据结构是( ), 它记录着源程序中的各种信息. 在这些表中, 尤其以( )最为重要, 它的生存期最长, 使用也最频繁。
. b h) o* o; }A. 线性表 , 符号表 B. 表 , 链表 0 Z+ n) o2 X5 ?- l* W8 \# `' N8 d
C. 线性表 , 链表 D. 表 , 符号表; f, g9 N5 D" E7 {/ X8 w
% n2 z6 p. ~& h# G }3 K* @二、资料来源:谋学网(www.mouxue.com)(每题3分,10道题,30分)
& A: R X) d4 Z9 q U+ l01. “用高级语言书写的源程序都必须通过编译, 产生目标代码程序后才能投入运行.”这种说法( ) 8 X5 ~1 Q/ u, l- n
A、错误 B、正确, l5 R/ W0 t5 \ ?% Y- \) I
02. 编译程序生成的目标程序一定是机器语言的程序。( ). E/ ]4 ~) C& x# C. d
A、错误 B、正确' Y' }3 l% Q8 ]% _
03. 文法的两种运算系指: 推导和连接。( )
- L. v7 @' b. H+ g% j+ UA、错误 B、正确
5 ]/ q$ m* m4 K4 x3 n; ?6 u04. 文法是用于定义语言的,它可用如下四元组描述:
8 N9 m2 \: p& z& T8 wG(Z)=( VN , VT , Z , p ),其中:Z称为文法的结束符号。( ) , \/ ^5 q2 q; I& z+ F9 {* o1 E
A、错误 B、正确
. M7 a [8 c( p& r8 _05. 有限自动机可用来描述上下文无关语言语言。( )& F Y v w' F) |8 ]# l
A、错误 B、正确$ L5 ]% N( ?8 A: `! s. G
06. 正规文法是特指文法产生式仅具有如下形式:⑴ A -> aB ⑵ A -> a ⑶ A -> e。( )
0 l# e" I/ L4 jA、错误 B、正确
; l; G# s+ B1 R2 T: A( ~+ |' i/ g& S07. TOKEN 是词法分析中单词的一种机内数据结构表示,其结构是{类,值}。( )
?* ? h( I; D1 F* @8 w* \9 lA、错误 B、正确
- }0 D# q, f: j2 s9 s# K' j08. 语法分析的任务,是对给定的符号串,判定其是否是某文法的句子。( )7 A" m+ d/ e: d4 S: W
A、错误 B、正确
. U4 X9 U, t' I3 H# v/ A3 P" r, u09.语法分析方法分两类: (1) 自顶向下分析; (2) 自底向上分析。( )
; U% r, C' N. vA、错误 B、正确$ u1 v- A& i+ a8 _# _$ F! B
10. 过程的一次执行所需要的信息用一块连续的存储区域来管理,这块存储区叫做符号表。( ), ]0 U5 R9 T: O# l" r% P* A# c
A、错误 B、正确5 g+ _# d6 A& k- E$ q
" O6 ^- ]; g, \; D) B
三、(15分)回答下列问题: 4 G# G- J T" \+ S) B. [: X, u K
(1)写出表达式 a*(b-c/d+e) 的逆波兰式:
3 l1 _# _$ p7 b(2)写出条件语句 if (x>0) x=a+b/10 的四元式序列:6 F* X9 ?. T$ P0 T! _ L( q
(3)设有算术表达式文法如下: A' I1 c5 w2 c" ]
E --> T | E + T | E – T
: g! d6 q1 v" ?. f! N' ?8 |4 u T --> F | T * F | T / F 6 E6 _% `; S! h2 O. w
F --> i | ( E ) 其中: i : 变量或常量;
, K/ p2 B( _: p$ p试构造四元式翻译文法并指出其中各翻译子程序的功能:& a3 e/ q" x, O4 c; y! u4 b
% _, P7 u: f( {8 }3 n
) p+ K g& L# J# d
$ a3 E1 z" a0 b: a& Z$ }' S
* w3 w9 j8 J+ r" ?0 p1 W {4 Q( P: @' }% G* `
( o5 M& d) i$ W6 C" A0 N$ M# C2 T0 f8 ]$ f: e5 z
" D* i7 J7 ?0 e% K+ k$ ]" f( ?3 m" ]& Z
. O' f5 ^7 {4 o% Q
2 Q, X- V ^ n9 E5 |
& [# l" R9 r, n+ `; {7 \: [$ n7 g% H; v
1 }4 E1 R% q) n" i: G
1 T% `: p+ m: Y; j2 G4 D- b3 ?, _6 a
四、(15分)试已知符号串集合为: A= { a bn c ,d │ n≥0 }
5 j2 J% p Q$ F; d a) ], o7 P! ~* j3 q" ](1)构造相应的有限自动机:
0 d7 a3 i6 l3 h& W(2)构造相应的文法: G(S): ' [2 A. v/ i0 e0 W% m
(3)已知有限自动机 FA (右图) :
# @, U5 G, c: g0 b
, }2 H7 G( v, V$ _3 }) |4 W) Z FA:
# B; Z, h& A- N" b% z
( @* h$ v2 H& k& x j; H 写出 FA 所表示的符号串集合(语言): A; G( F- H. Y: T7 ^' v3 j, s" ? K/ x
# z+ G4 d' M( M2 ~3 p1 I4 v% P; `
# T3 @+ [7 q0 u- q& l. ^. N9 p; G! P: M7 J- G/ E
- S" ?, s$ u1 W
. ~0 x+ P5 \0 J) A3 n- u
4 p: M" p* Y S. [6 w- X$ F, w% v6 D; A7 S$ Q- `
7 y% ?' s' |7 G9 U! Y, U* B6 o- [3 Y6 P' X6 v, i* ?. x
$ }8 C! g r1 d8 \' V3 Y
; T' `; }0 B$ n+ @0 y$ T# P
) r/ ]( u1 d- O
1 }6 P% k+ o- R6 n w6 D3 ~) S2 X7 i8 Z3 e" v2 P) b
五、(10分)设有文法 G(S):# M/ l0 B% v* R4 C4 w, `% ~+ }4 Z
S -> a B d | b A B
) w3 a- p* ]! u: ?3 | A -> a A b | b5 [. Y3 p* l# Y" k
B -> c | B c # y) f6 {+ ~ v5 H7 y. D
(1) 证明 baAbcc 是一个句型,画出此句型的语法树, 指出此句型的短语、简单短语和句柄; ( w% Q- Q- n0 \ C2 U! _4 u
(2) 把文法中的左递规产生式变换成非左递规产生式。2 h6 ^ S% S; I5 ~
0 Y4 r6 J2 M( ^% H
7 {+ T. {" D! u1 f2 j; S |
|