编译原理期末试题附答案


    编译原理期末试题()
    非题(请括号正确划√错误划×)(2分20分)
    1.编译程序高级语言程序解释执行(× )
    2.限状态动机中仅唯终态(×)
    3.算符优先文法存算符优先函数应 (√ )
    4.语法分析时必须先消文法中左递 (×)
    5.LR分析法左右扫描输入串时发现错误准确指出出错点 (√)
    6.逆波兰表示法表示表达式时须括号 (√ )
    7.静态数组存储空间编译时确定 (×)
    8.进行代码优化时应着重考虑循环代码优化提高目标代码效率起更作 (×)
    9.两正规集相等必条件应正规式等价 (× )
    10.语义子程序描述文法应翻译工作 (×)
    二选择题(请前括号选择确切项作答案划勾划错)(4分40分)
    1.词法分析器输出结果_____
     A.( ) 单词种编码       B.( ) 单词符号表中位置
     C.( ) 单词种编码身值   D.( ) 单词身值
    2. 正规式 M 1 M 2 等价指_____ 
     A.( ) M1M2状态数相等             B.( ) M1M2边条数相等
     C.( ) M1M2识语言集相等   D.( ) M1M2状态数边条数相等
    3. 文法G:S→xSx|y识语言_____
     A.( ) xyx    B.( ) (xyx)* C.( ) xnyxn(n≥0)     D.( ) x*yx*
    4.果文法G二义句子α_____
     A.( )左推导右推导应语法树必定相   
     B.( ) 左推导右推导应语法树   
     C.( ) 左推导右推导必定相     
     D.( )存两左推导应语法树相
    5.构造编译程序应掌握______
     A.( )源程序      B.( ) 目标语言    
      C.( ) 编译方法      D.( ) 三项
    6.四元式间联系通_____实现
     A.( ) 指示器           B.( ) 时变量
     C.( ) 符号表             D.( ) 程序变量
    7.表达式(┐A∨B)∧(C∨D)逆波兰表示_____
     A ( ) ┐AB∨∧CD∨     B.( ) A┐B∨CD∨∧      
      C.( ) AB∨┐CD∨∧         D.( ) A┐B∨∧CD∨
    8 优化生成_____目标代码
     A.( ) 运行时间较短                   B.( ) 占存储空间较
     C.( ) 运行时间短占存空间     D.( ) 运行时间短占存储空间
    9.列______优化方法针循环优化进行
     A ( ) 强度削弱        B.( ) 删纳变量    
     C.( ) 删余运算     D.( ) 代码外提
    10.编译程序_____区标识符作域
     A ( ) 说明标识符程函数名
     B.( ) 说明标识符程函数静态层次
     C.( ) 说明标识符程函数动态层次
     D ( ) 标识符行号
    三填空题(空1分10分)
    1.计算机执行高级语言编写程序两种途径:___解释____编译___
    2.扫描器__词法分析器___接受输入__源程序___源程序进行___词法分析__识出单词符号输出结果单词符号供语法分析器
    3.分析法采___移进__约错误处理___接受__等四种操作
    4.LR分析器包括两部分:总控程序___张分析表__
    5.缀式abc代表表达式___a(bc)__
    6.局部优化__基块___范围进行种优化
    四简答题(20分)
    1 简说明语义分析基功
    答:语义分析基功包括 确定类型类型检查语义处理某静态语义检 查

    2 考虑文法 G[S]
    S → (T) | a+S | a
    T → TS | S
    消文法左递提取公左子
    解:消文法G[S]左递:
    S→(T) | a+S | a
    T→ST′
    T′→ST′| ε
    提取公左子:
    S→(T) | aS′
    S′→+S | ε
    T→ST′
    T′→ST′| ε
    3 试表达式 w+(a+b)*(c+d(e10)+8) 写出相应逆波兰表示
    解: w a b + c d e 10 + 8 + * +
    4 三种基控制结构文法面语句翻译成四元式序列:
    while (A{
    if (A ≥ 1) CC+1
    else while (A ≤ D)
    AA+2
    }
    解:该语句四元式序列(中E1E2E3分应A<C∧B<DA≥1A≤D关系运算符优先级高):
    100 (j101 (j__113)
    102 (j103 (j__113)
    104 (jA1106)
    105 (j__108)
    106 (+ C 1 C)
    107 (j__112)
    108 (j≤AD110)
    109 (j__112)
    110 (+ A 2 A)
    111 (j__108)
    112 (j__100)
    113

    5 已知文法 G[S] S → aSb|Sb|b 试证明文法 G[S] 二义文法
    证明:    
      文法G[S]:S→aSb|Sb|b句子aabbbb应两棵语法树:
      
    文法G[S]二义文法   

    五计算题(10分)
    已知文法
    A>aAd|aAb| ε
    判断该文法否 SLR(1) 文法构造相应分析表输入串 ab# 出分析程
    解:增加非终结符S产生原文法增广文法:

    S'>A
    A>aAd|aAb|ε
    面构造LR(0)项目集规范族:
    表出状态I0I2存移进约突该文法LR(0)文法I0说:FOLLOW(A)∩{a}{bd#}∩{a}ΦI0状态面输入符号a时移进bd#时约时报错I2说I0完全相结说移进约突解决该文法SLR(1)文法
    SLR(1)分析表:
    输入串ab#出分析程:

    编译原理期末试题(二)
    非题:
    1文关文法开始符终结符非终结符 ( )
    2句型直接短语唯 ( )
    3已证明文法二义性判定 ( )
    4基块DAG表示 ( )
    5程活动记录体积编译时静态确定 ( )
    62型文法定3型文法 ( )
    7句型定句子 ( )
    8算符优先分析法次句柄进行约 X ( )
    9采三元式实现三址代码时利中间代码进行优化 ( )
    10编译程中语法分析器务分析单词样构成 ( )
    11优先表定存相应优先函数 X ( )
    12目标代码生成时应考虑充分利计算机寄存器问题 ( )
    13递降分析法种分析法 ( )
    14文法改写成LL(1)文法 ( )
    15基块入口出口 ( )
    16LL(1)文法定二义 ( )
    17逆波兰法表示表达试称前缀式 ( )
    18目标代码生成时应考虑充分利计算机寄存器问题 ( )
    19正规文法产生语言文关文法描述 ( )
    20优先表定存相应优先函数 ( )
    213型文法定2型文法 ( )
    22果文法存某句子应两棵语法树文法二义性 ( )
    答案:1× 2× 3× 4√ 5√ 6× 7× 8× 9√ 10× 11×
    12√ 13× 14√ 15√ 16√ 17× 18√ 19√ 20× 21√ 22√

    二填空题:
    2编译程分 ( 词法分析) (语法分析)(语义分析中间代码生成 )(优化)(目标代码生成 )五阶段
    3果文法存某句子应两棵语法树称文法( 二义性 )
    4功说程序语言语句体分( 执行性 )语句(说明性 )语句两类
    5语法分析器输入( 单词符号 )输出( 语法单位 )
    6扫描器务( 源程序中 )中识出( 单词符号 )
    7符号表中信息栏中登记名字关性质(类型种属占单元址)等等
    8程相应DISPLAY表容(现行活动记录址外层新活动记录址)
    10常两种动态存贮分配办法(栈式)动态分配(堆式)动态分配
    11名字属性包括( 类型)(作域 )
    12常参数传递方式(传址)(传值)(传名)
    13根优化涉程序范围优化分成(局部优化)(循环优化)(全局优化)三级
    14语法分析方法致分两类类( )分析法类( )分析法
    15预测分析程序张( 分析表 )( 符号栈 )进行联合控制
    17张转换图包含限状态中认(初)态实际少(终 )态
    19语法分析语言(语法 )规进行中间代码产生语言(语义)规进行
    21文法G预测分析表M含重定义该文法(LL(1) 文法)文法
    22数空间存贮分配 FORTRAN采( 静态策略 PASCAL采( 动态)策略
    24右推导称(规范推导)句型称(规范)句型
    26文法G仅含终结符号句型称 ( 句子 )
    27谓分析法指(开始符号出发推导推出句子)
    29局限基块范围优化称( 局部优化 )
    312型文法称(文关)文法3型文法称(正 )文法
    32条指令执行代价定义(指令访问存次数加1)
    33算符优先分析法次(左素短语)进行约
    三名词解释题:
    1局部优化局限基块范围优化称
    2二义性文法果文法存某句子应两棵语法树称文法二义性文法
    3DISPLAY表程嵌套层次显示表记录该程外层程新活动记录起始址
    5左推导步α>βα中右非终结符换
    6语法组规形成产生组合式程序
    7文法描述语言语法结构形式规
    8基块指程序中序执行语句序列中入口出口入口中第语句出口中语句
    9语法制导翻译语法分析程中根产生式应语义子程序进行翻译办法做语法制导翻译
    10短语令G文法S划文法开始符号假定αβδ文法G句型果SαAδAβ称β句型αβδ相非终结符A短语
    11信息果基块中四元式iA定值四元式j引A值ij间没A定值称j四元式i变量A信息
    12规范句型规范推导句型
    13扫描器执行词法分析程序
    14超前搜索词法分析程中时确定词性需超前扫描干字符
    15句柄句型左直接短语
    16语法制导翻译语法分析程中根产生式应语义程序进行翻译方法 做语法制导翻译
    17规范句型规范推导句型
    18素短语素短语指样短语少含终结符身外含更素短语
    19语法组规形成产生合式程序
    20信息果基块中四元式iA定值四元式j引A值ij间没A定值称j四元式i变量A信息
    21语义定义程序意义组规
    四简答题:
    1写文法G 语言 0开头偶数集
    2已知文法G(S)相应翻译方案
    S→aAb {print 1}
    S→a {print 2}
    A→AS {print 3}
    A→c {print 4}
    输入acab 输出什?
    3 已知文法G(S)
    S→bAa
      A→(B | a
    B→Aa)
     写出句子b(aa)b规范约程
    4 考虑面程序:

    procedure  p(x y z)
    begin
    yx+y
    zz*z
    end
    begin
    A2
    BA*2
    P(A A B)
    Print A B
    end
    试问参数传递方式分采传址传值时程序执行输出 A B值什
    5.文法G(S)
    S→dAB
    A→aA| a
    B→Bb| ε
    描述语言什?
    6 证明文法G(S)
    S→SaS| ε
    二义性
    7 已知文法G(S)
    S→BA
    A→BS| d
    B→aA| bS | c
    预测分析表


    a
    b
    c
    d
    #
    S
    S→BA
    S→BA
    S→BA


    A
    A→BS
    A→BS
    A→BS
    A→d

    B
    B→aA
    B→bS
    B→c



    出句子 adccd 分析程
    8 写文法G 语言 L(G){albmclanbn| l>0 m>1 n>2}
    9 已知文法G(S)
    S→a| (T)
    T→TS|S
    优先关系表:
    关系
    a
    (
    )

    a


    >
    >
    (
    <
    <

    <
    )


    >
    >

    <
    <
    >
    >
    请计算出该优先关系表应优先函数表
    10 谓优化?涉程序范围分级优化?
    11 目标代码种形式?生成目标代码时通常应考虑问题?
    12 字母表Σ{a b}试写出Σa首字组成正规集相应正规式
    13 基优化方法种?
    14 写文法G 语言 L(G){abncn| n≥0}
    15 考虑面程序:

    procedure p(x y z)
    begin
    yy+z
    zy*z+x
    end
    begin
    a2
    b3
    p(a+b b a)
    print a
    end
    试问参数传递方式分采传址传值时程序执行输出 a值什
    16写出表达式a+b*(cd)e逆波兰式三元序列
    17证明文法G(A)
    A→AA | (A)| ε
    二义性
    18令Σ{ab}正规式a*b|b*a 表示正规集什?
    19谓DISPLAY表?作什?
    20考虑面程序:

    procedure  p(x y z)
    begin
    yy+2
    zz+x
    end
    begin
    a5
    b2
    p(a+b ab a)
    print a
    end
    试问参数传递方式分采传址传值时程序执行输出 a值什
    21写文法G 语言 L(G){anbncm| n>0奇数 m>0偶数}
    22写出表达式a(b+c)*e+(b+c)f逆波兰式三元序列
    23文法GLL(1)文法充条件什?
    24已知文法G[S]
    S→S*aF | aF | *aF
    F→+aF | +a
    消文法左递提公左子
    25符号表作什?符号表查找整理技术种?
    答案:1求文法G[S]
    S→AB |B A0
    A→AD |C
    B→2 |4 |6 |8
    C→1 |3 |5 |7 |9 |B
    D→0 |C
    2输出4231
    3句子b(aa)b规范约程:
    步骤
    符号栈
    输入串
    动作
    0
    #
    b(aa)b#
    预备
    1
    #b
    (aa)b#
    移进
    2
    #b(
    aa)b#
    移进
    3
    #b(a
    a)b#
    移进
    4
    #b(A
    a)b#

    5
    #b(Ma
    )b#
    移进
    6
    #b(Ma)
    b#
    移进
    7
    #b(B
    b#

    8
    #bA
    b#

    9
    #bAb
    #
    移进
    10
    #S
    #
    接受
    4传址 A6 B16
    传值 A2 B4
    5L(G){danbm |n>0 m≥0}
    6证明:
    文法G[S]存句子aa两左推导文法G[S]二义性
    S>SaS>SaSaS>aSaS>aaS>aa
    S>SaS>aS>aSaS>aaS>aa
    7句子 adccd 分析程:
    步骤
    符号栈
    输入串
    产生式
    0
    #S
    adccd#

    1
    #AB
    adccd#
    S→BA
    2
    #AAa
    adccd#
    B→aA
    3
    #AA
    dccd#

    4
    #Ad
    dccd#
    A→d
    5
    #A
    ccd#

    6
    #SB
    ccd#
    A→BS
    7
    #Sc
    ccd#
    B→c
    8
    #S
    cd#

    9
    #AB
    cd#
    B→c
    10
    #Ac
    d#

    11
    #A
    d#

    12
    #d
    d#
    A→d
    13
    #
    #

    8求文法G[S]
    S→AB
    A→aAc | D
    D→bD | b
    B→aBb | aabb
    9
    函数
    a
    (
    )

    f
    4
    2
    4
    4
    g
    5
    5
    2
    3
    10优化:程序进行种等价变换变换程序出发产生更效目标代码
      三种级:局部优化循环优化全局优化
    11目标代码通常采三种形式:机器语言汇编语言装配机器语言模块
    应着重考虑问题:
       (1)生成目标代码较短
       (2)充分利寄存器减少访问存次数
       (3)充分利指令系统特点
    12正规式 a ( a | b )*
    13删余运算代码外提强度削弱变换循环控制条件合已知量复写传播删赋值
    14文法G[S]
    S→aB | a
    B→bc |bBc
    15传值 a2
    传址 a15
    16逆波兰式 abcd*e+
    三元序列 op arg1 arg2
    (1) c d
    (2) * b (1)
    (3) (2) e
    (4) + a (3)
    17证明:
    文法G[S]存句子 () 两左推导文法G[S]二义性
    A>AA>(A)A>()A>()
    A>AA>A>(A)>()
    18(a*b|b*a){ababbaaabbba……}
    19Display表 嵌套层次显示表
    程嵌套允许层程引外层程定义数程运行时必须踪外层程新活动记录起始址 display表登记外层程新活动记录起始址
    20传址 a12
    传值 a5
    21求文法G[S]
    S→AC
    A→aaAbb | ab
    C→ccC | cc
    22逆波兰式 abc+e*bc+f+
    三元序列 op arg1 arg2
    (1) + b c
    (2) * (1) e
    (3) + b c
    (4) (3) f
    (5) + (2) (4)
    (6) a (5)
    23文法GLL(1)文法充条件
    (1) FIRST(α) ∩FIRST(β)Ф
    (2) 果 β*>ε FIRST(α) ∩FOLLOW(A) Ф
    24消左递
    S→aFS’ | *aFS’
    S’→*aFS’ | ε
    F→+aF | +a
    提公左子文法 G’(S)
    S→aFS’ | *aFS’
    S’→*aFS’ | ε
    F→+aF’
    F’→F |ε
    25作:登记源程序中出现种名字信息解阶段进展状况
    技术:线性表折查找杂奏技术
    五计算题:
    1设文法G(S)
    S→^ | a | (T)
    T→TS | S
    ⑴ 消左递
    ⑵ 构造相应FIRSTFOLLOW集合
    ⑶ 构造预测分析表
    2语句 if E then S
      (1) 改写文法适合语法制导翻译
      (2) 写出改写产生式语义动作
    3设文法G(S):
    S→(T) | a
    T→T+S | S
    (1)计算FIRSTVT LASTVT
    (2)构造优先关系表
    4设某语言for语句形式
    for i=E(1) to E(2) do S
    语义解释
    i=E(1)
    LIMIT=E(2)
    again if i<=LIMIT then
    Begin
    S
    i=i+1
    goto again
    End
    (1)写出适合语法制导翻译产生式
    (2)写出产生式应语义动作
    5语句
    while a<10 do
    if c>0 then aa+1
    else aa*31
    翻译成四元式序列
    6设基块
      DAC
      EA*C
      FD*E
      S2
      TAC
    QA*C
      G2*S
      JT*Q
    KG*5
      LK+J
    ML
      假设基块出口时M引请写出优化四元序列
    7已知文法G(S)
    S→a | ^ | (T)
    T→TS | S
    (1) 出句子(a(aa))左推导
    (2) 出句型((TS)a)短语 直接短语句柄
    8 C 语言do S while E语句
       (1)改写文法适合语法制导翻译
       (2)写出改写产生式语义动作
    9已知文法G(S)
       S→aAcBe
       A→Ab| b
       B→d
      (1)出句子abbcde左推导画出语法树
      (2)出句型aAbcde短语素短语
    10设文法G(S)
    S→(T) | aS | a
    T→TS | S
    ⑴消左递提公左子
    ⑵构造相应FIRSTFOLLOW集合
    ⑶构造预测分析表
    11语句
    if X>0 ∨ Y<0
    then while X>0 do XA*3
    else YB+3
    翻译成四元式序列
    12已知文法G(S)
      E→E+T | T
      T→T*F| F
      F→(E)| i
      (1) 出句型 (i+i)*i+i左推导画出语法树
      (2) 出句型 (E+T)*i+F 短语素短语左素短语
    13设文法G(S):
    S→T | S∨T
    T→U |T∧U
    U→i |U
    (1)计算FIRSTVT LASTVT
    (2)构造优先关系表
    答案:(1)消左递文法变G’[S]:
    S→^ | a | (T)'
    T→ST’ | S
    T’→ST’ |ε
    文法左公左子
    (2)构造相应FIRSTFOLLOW集合:
    FIRST(S){a ^ (} FOLLOW(S){# )}
    FIRST(T){a ^ (} FOLLOW(T){}}
    FIRST(T’){ ε} FOLLOW(F){)}
    (3)构造预测分析表:

    a
    ^
    (
    )

    #
    S
    S→a
    S→^
    S→(T)'



    T
    T→ST’
    T→ST’
    T→ST’



    T’



    T’→ε
    T’→ST’

    2 (1)
    C→if E then
    S→CS(1)
    (2)
    C→if E then {BACK(ETC NXQ) CchainEFC}
    S→CS(1) {SchainMERG(CChain S(1) Chain)}
    3 (1) FIRSTVT(S){a ( }
    FIRSTVT(T){+ aa (}
    LASTVT(S){a ) }
    LASTVT(T){+ a )}
    (2)

    a
    +
    (
    )
    a

    >

    >
    +
    <
    >
    <
    >
    (
    <
    <
    <

    )

    >
    >
    >
    4 (1) F→for iE(1) to E(2) do
    S→FS(1)
    (2) F→for iE(1) to E(2) do
    {GEN( E(1)place _ entry(i))
    Fplaceentry(i)
    LIMITNewtemp
    GEN( E(2)place _ LIMIT)
    QNXQ
    FQUADq
    GEN(j≤ entry(i) LIMIT q+2)
    FchainNXQ
    GEN(j _ _ 0)}
    S→FS(1)
    {BACKPATCH(S(1)chain NXQ)
    GEN(+ Fplace 1 Fplace)
    GEN(j _ _ FQUAD)
    SchainFchain
    }
    5 (1) (j< a 10’ (3))
    (2) (j _ _ (12))
    (3) (j> c 0’ (5))
    (4) (j _ _ (8))
    (5) (+ a 1’ T1))
    (6) ( T1 _ a)
    (7) (j _ _ (1))
    (8) (* a 13’ T2)
    (9) ( T2 1’ T3)
    (10) ( T3 _ a)
    (11) (j _ _ (1))
    6优化四元序列
    DAC
    EA*C
    FD*E
    MF+20
    7 左推导
    S(T)>(TS)>(SS)>(aS)>(a(T))>(a(TS))>(a(SS))>(a(aS))>(a(aa))
    短语
    ((TS)a)
    (TS)a
    (TS)
    TS
    a
    直接短语
    TS
    a
    句柄
    TS
    8(1)
    S→do M1 S1 while M2 E
    M→ε
    (2)
    M→ε {Mquadnestquad}
    S→do M1 S1 while M2 E {backpatch(s1nextlist M2quad)
    backpatch(Etruelist M1quad)
    SnextlistEfalelist
    }
    9(1) S>aAcBe>AAbcBe>abbcBe>abbcde
    (2) 短语 aAbcde Ab d
    素短语 Ab d
    10(1) S →(L) | aS’
    S’→S |ε
    L→SL’
    L’→SL’ |ε
    (2) FIRST(S){a (} FIRST(S’){a ( ε}
    FIRST(L){a (} FIRST(L’){ ε}
    FOLLOW(S){ ) #} FOLLOW(S’){ ) #}
    FOLLOW(L){ )} FOLLOW(L’){ )}
    (3)


    (
    )
    a

    #
    S
    S →(L)

    S → aS’


    S’
    S’→S
    S’→ε
    S’→S
    S’→ε
    S’→ε
    L
    L→SL’

    L→SL’
    L’→SL’

    L’

    L’→ε




    11(1) (j> X 0 (5))
    (2) (j _ _ (3))
    (3) (j< Y 0 (5))
    (4) (j _ _ (11))
    (5) (j>0 X 0 (7))
    (6) (j _ _ (7))
    (7) (* A 3 T1)
    (8) ( T1 _ N)
    (9) (j _ _ (5))
    (10) (j _ _ (13))
    (11) (+ B 3 T2)
    (12) ( T2 _ Y)
    12(1) E>E+T>T+T>T*F+T>F*F+T>(E)*F+T>(E+T)*F+T>(T+T)*F+T
    >(F+T)*F+T>(i+T)*F+T>(i+F)*F+T>(i+i)*F+T>(i+i)*i+T
    >(i+i)*i+F>(i+i)*i+i
    (2) 短语 i F E+T (E+T) (E+T)*i (E+T)*i+F
    素短语 i E+T
    左素短语 E+T
    13(1) FIRSTVT(S){∨ ∧ i }
    FIRSTVT(T){∧ i }
    FIRSTVT(U){i }
    LASTVT(S){∨ ∧ i }
    LASTVT(T){∧ i }
    LASTVT(U){i }
    (2)


    i



    S

    >
    >


    <
    >
    <
    <

    <
    >
    >
    <

    <
    >
    >
    <








    编译原理期末试题(二)
    1描述正规式b*(abb*)*(a| e)定义语言画出接受该语言简DFA
    2证明文法E ® E + id | idSLR(1)文法
    3面表达式赋值语句文法中and类型bool ´ bool ® bool+类型int ´ int ® int类型int ´ int ® bool 求id E类型int者bool该文法写语法制导定义翻译方案完成类型检查
    S ® id E
    E ® E and E | E + E | E E |id
    4面C语言文件sc
    f1(int x)
    {
    long x
    x 1
    }
    f2(int x)
    {
    {
    long x
    x 1
    }
    }
    某编译器编译时报错:
    sc In function f1’
    sc3 warning declaration of x’ shadows a parameter
    请回答函数f2什没类似警告错误

    5面C语言程序非优化编译运行时输入2结果
    area12566360 addr1073743076
    优化编译运行时输入2结果
    area12566360 addr1073743068
    请解释什输出结果区
    main()
    {
    float s pi r

    pi314159
    scanf(f &r)
    printf(areaf addrd\n spi*r*r &r)
    }
    6描述正规式b*a(bb*a) *b*定义语言画出接受该语言简DFA
    7面文法产生代表正二进制数01串集:
    B ® B 0 | B 1 | 1
    面翻译方案计算种正二进制数十进制值:
    B ® B1 0 {Bval B1val ´ 2 }
    | B1 1 {Bval B1val ´ 2 +1}
    | 1 {Bval 1 }
    请消该基础文法左递重写翻译方案然计算种正二进制数十进制值
    8 C语言中果变量ijlong类型请写出表达式&i表达式&i&j类型表达式帮助回答问题面出程序作提示运行时输出1
    main() {
    long i j
    printf(d\n &i&j)
    }
    9C语言函数:
    func(i) long i {
    long j
    j i – 1
    func(j)
    }
    面左右两边汇编代码两版GCC编译器该函数产生代码左边代码调func前参数压栈调结束参数退栈右边代码参数传递处理方式没实质区请叙述右边代码参数传递处理方式推测带优点
    func | func
    pushl ebp | pushl ebp
    movl esp ebp | movl esp ebp
    subl 4 esp | subl 8 esp
    movl 8(ebp) edx | movl 8(ebp) eax
    decl edx | decl eax
    movl edx 4(ebp) | movl eax 4(ebp)
    movl 4(ebp) eax | movl 4(ebp) eax
    pushl eax | movl eax (esp)
    call func | call func
    addl 4 esp | leave
    leave | ret
    ret |

    编译原理试卷八答案


    start
    1
    a
    b
    b
    2



    1正规式b*(abb*)*(a| e)定义语言字母表{a b}含子串aa串集合简DFA:
    2先出接受该文法活前缀DFA:
    E¢ ®·E
    E ®·E + id
    E ®·id
    I0
    E¢ ® E·
    E ® E·+ id
    I1
    E ® id·
    I2
    E
    id
    +
    E ® E +·id
    I3
    E ® E + id·
    I4
    id



    I0I3移进项目肯定会引起突I2I4移进项目仅含约项目肯定会引起突I1中E¢继符号第2项目展符号+样I1肯定会引起突断定该文法SLR(1)

    3语法制导定义
    S ® id E { Stype if (idtype bool and Etype bool) or (idtype int and Etype int)then type_ok else type_error }
    E ® E1 and E2 { Etype if E1type bool and E2type bool then bool else type_error }
    E ® E1 + E2 { Etype if E1type int and E2type int then int else type_error }
    E ® E1 E2 { Etype if E1type int and E2type int then bool else type_error }
    E ® id { Etype lookup(identry) }

    4函数f1局部变量x声明作域整函数体导致函数体中访问形式参数x合法C语言函数编译器出警告错误
    函数f2局部变量x作域函数体部分会出现述问题编译器报错
    5非优化编译时变量s pi r局部数区分配4字节空间优化编译时复写传播pi*r*r 变成314159*r*rpi314159成赋值删函数中pi引必pi分配空间类似s314159*r*r赋值(表达式计算赋值)必s分配空间样非优化情况相局部数区少8字节 r址高址方移动8字节



    6正规式b*a(bb*a) *b*体现特点a左边干b非a第字母该正规式定义语言:少含a含子串aaab串集简DFA:


    start
    2
    a
    b
    b
    1
    0
    a
    b






    7 消左递文法:
    B ® 1 B¢
    B¢ ® 0 B¢ | 1 B¢ | e
    相应翻译方案:
    B ® 1 {B¢i 1 }B¢{Bval B¢val}
    B¢ ® 0 {B¢1i B¢i ´ 2 } B¢1 {B¢val B¢1val}
    | 1 {B¢1i B¢i ´ 2 +1} B¢1 {B¢val B¢1val}
    | e {B¢val B¢i}

    8表达式&i类型表达式pointer(long)表达式&i&j类型表达式longC语言规定指类型两指针相加减值差间元素数
    9左边编译器版:般局部变量分配空间调函数前干次pushl指令参数压栈返回addl n esp次参数退栈(常数n根调前做少次pushl决定)
    右边编译器版:局部变量分配空间外时函数中出现函数调参数分配空间参数空间栈顶调函数前movl指令参数移入栈顶调结束需参数退栈指令
    优点次函数调结束需执行addl n esp指令外增加优化性





























    编译原理期末试题(三)
    1 优化范围角度优化分两类?循环优化三种?
    答:优化范围角度优化分局部优化全局优化两类
    循环优化三种:循环变表达式外提纳变量删计算强度削减
    2写出表达式ab*c+b*d应逆波兰式四元式序列三元式序列
    答:逆波兰式: abc*bd*+
    四元式序列: 三元式序列 OP ARG1 ARG2
    (1) (* b c t1) (1) (* b c )
    (2) (* b d t2) (2) (* b d )
    (3) (+ t1 t2t3) (3) (+ (1) (2))
    (4) ( t3 a) (4) ( (3) a)
    3文法G(S)

    S
    b
    M
    (
    T
    M
    a
    b
    L
    )
    答:1)
    2) 短语 Ma) (Ma) b(Ma)b
    直接短语 Ma) 句柄 Ma)
    三 设字母表{ab}正规式R(ab|a)*
    解:(1)
    0
    1
    2
    3
    b
    a
    a
    ε
    ε

    +

    (2)(1)非确定限动机确定化

    ε
    a
    b
    0
    1


    1
    3
    12

    2


    1
    +3





    a
    b
    +013
    123

    +123
    123
    13
    +13
    123

    0
    1
    2
    a
    a
    b
    a
    +
    +
    +

    (3)(2)DFA化简合状态02 状态2:
    1
    2
    a
    a
    b
    +
    +

    (4)令状态12分应非终结符BA
    G A→aB|a|ε B→aB|bA|a|b|ε化简:G A→aB|εB→aB|bA|ε

    四 设文法G改写成等价LL(1)文法构造预测分析表
    G:S→S*aT|aT|*aT T→+aT|+a
    解:消左递文法G’ S→aTS’|*aTS’
    S’→*aTS’|ε
    T→+aT|+a
    提取左公子文法G’’
    S→aTS’|*aTS’
    S’→*aTS’|ε
    T→+aT’
    T’→T|ε
    Select(S→aTS’){a}
    Select(S→*aTS’){*}
    Select(S→aTS’)∩Select(S→*aTS’)Ф
    Select(S’→*aTS’){*}
    Select(S’→ε)Follow(s’){#}
    Select(S’→*aTS’)∩Select(S’→ε) Ф
    Select(T→+aT’){+}
    Select(T’→T)First(T) {+}
    Select(T’→ ε)Follow(T’){*#}
    Select(T’→T)∩Select(T’→ε) Ф
    该文法LL(1)文法
    预测分析表:

    *
    +
    a
    #
    S
    →*aTS’

    →aTS’

    S’
    →*aTS’


    →ε
    T

    →+aT’


    T’
    → ε
    →T

    → ε
    6设文法G :
    S→AA→BA|εB→aB|b
    解:(1)拓广文法G’:(0) S’→S (1) S→A (2) A→BA(3) A→ε(4) B→aB (5) B→b FIRST(A) {ε a b}FIRST(B) {a b}
    构造DFA

    项目集规范族出存突动作∴该文法LR(1)文法
    (2) LR(1)分析表:


    (3)输入串abab 分析程:


    简答题 3设文法G[S] S→S(S)S|ε该文法否二义文法?说明理 答:二义()()构造两棵语法树
    S S

    S ( S ) S S ( S ) S

    ε ε S ( S ) S S ( S ) S ε ε

    ε ε ε ε ε ε
    五 定文法G[S]:
    S→aA|bQ A→aA|bB|bB→bD|aQ Q→aQ|bD|bD→bB|aA E→aB|bF
    F→bD|aE|b
    构造相应DFA
    解:先构造NFA: 子集法NFA确定化:

    a
    b
    S
    A
    Q
    A
    A
    BZ
    Q
    Q
    DZ
    BZ
    Q
    D
    DZ
    A
    B
    D
    A
    B
    B
    Q
    D

    SAQBZDZDB重新命名分0123456表示34中含z终态

    a
    b
    0
    1
    2
    1
    1
    3
    2
    2
    4
    3
    2
    5
    4
    1
    6
    5
    1
    6
    6
    2
    5

    令P0=({01256}{34})b进行分割:
    P1=({05 6}{12}{34})b进行分割:
    P2=({0}{5 6}{12}{34})ab 进行分割变
    令{0}A{12}B{34}C{56}D
    化右图
    六 文法G(S):S → a | ^ | (T)T → TS | S
    答:(1)

    a
    ^
    (
    )

    #
    a



    >
    >
    >
    ^



    >
    >
    >
    (
    <
    <
    <

    <

    )



    >
    >
    >

    <
    <
    <
    >
    >

    #
    <
    <

    <



    (2) 算符优先文法两终结符间种优先关系(2分)
    (3) 出输入串(aa)#算符优先分析程
    步骤

    前输入字符
    剩余输入串
    动作
    1
    #
    (
    aa#
    #<( 移进
    2
    #(
    a
    a)#
    (3
    #(a

    a)#
    a> 约
    4
    #(N

    a)#
    (< 移进
    5
    #(N
    a
    )#
    6
    #(Na
    )
    #
    a>) 约
    7
    #(NN

    #
    >) 约
    8
    #(N
    )
    #
    () 移进
    9
    #(N)
    #
     
    )># 约
    10
    #N
    #

    接受

    编译原理期末试题(四)
    简述编译程序工作程(10)

    编译程序工作程指输入源程序开始输出目标程序止整程非常复杂程言般划分五工作阶段:①词法分析构成源程序字符串进行扫描分解识出单词②语法分析根语言语法规单词符号串分解成类语法单位③语义分析中间代码产生类语法单位分析汉进行初步翻译④代码优化期产生更高效代码⑤目标代码生成中间代码变换成特定机器低级语言指令形式

    二构造列正规式相应DFA(状态转换图表示)(15)
    (1) 1(0 | 1)*1
    01
    (2) 0*10*10*10*1
    (3) letter(letter | digit)*
    3
    1
    0

    2
    1
    (1)

    0
    0


    5
    1
    (2)
    1
    0
    4
    1
    3
    0
    2
    1
    1



    letter
    (3)

    2
    letter

    1



    digit





    三出面语言相应文法:(15)
    L1{an bn | n≥1} L2{anbm+nam | n≥1m≥0}



    G1:
    S→AB
    A→aAb | ab
    B→bBa | ε
    G1:
    A→aAb |ab






    四面文法G:
    S→a | b | (T)
    T→TS | S
    (1) 消文法左递等价文法G2
    (2) 判断文法G2否LL(1)文法果出预测分析表(15)
    G2:
    S→a | b | (T)
    T→ ST’
    T’→S T’ | ε
    G2LL(1)文法

    a
    b



    #
    S
    S→a
    S→b
    S→(T)



    T
    T→ ST’
    T→ ST’
    T→ ST’



    T’



    T’→ ε
    T’→S T’

    五设文法G[A]:
    A→BCc | gDB
    B→bCDE |ε
    C→DaB | ca
    D→dD |ε
    E→gAf | c
    (1) 计算该文法非终结符FIRST集FOLLOW集
    (2) 试判断该文法否LL(1)文法(15)

    FIRST
    FOLLOW
    A
    B
    C
    D
    E

    Abcdg
    b
    Acd
    D
    Cg

    Acd
    Cdg
    Abcg
    LL(1)文法


    六表达式文法G:
    E → E+T | T
    T → T*F | F
    F → (E) | I
    (1)造非终结符FIRSTVTLASTVT集合
    (2)构造文法算符优先关系表(15)

    FIRSTVT
    LASTVT
    E
    T
    F
    *+(i
    *(i
    (i
    *+)i
    *)i
    )i

    算符优先关系表

    +
    *
    I


    #
    +
    *
    I


    #
    >
    >
    >
    <
    >
    <
    <
    >
    >
    <
    >
    <
    <
    <

    <

    <
    <
    <

    <

    <
    >
    >
    >

    >
    >
    >
    >

    >

    七定义二进制整数文法:
    L →LB | B
    B →0 | 1
    构造翻译模式计算该二进制数值(十进制值)(15)
    引入LB综合属性val翻译模式:
    S →L {print(Lval)}
    L →L1B {Lval L1val*2+Bval}
    L →B {Lval Bval}
    B →0 {Bval0}
    B →1 {Bval1}



















    编译原理期末试题(五)
    单项选择题(10题题2分20分)
    1.语言
    A.句子集合 B.产生式集合
    C.符号串集合 D.句型集合
    2.编译程序前三阶段完成工作
    A.词法分析语法分析代码优化
    B.代码生成代码优化词法分析
    C.词法分析语法分析语义分析中间代码生成
    D.词法分析语法分析代码优化
    3.句型中称句柄该句型左
    A.非终结符号 B.短语 C.句子 D.直接短语
    4.推动机识语言
    A.0型语言 B.1型语言
    C.2型语言 D.3型语言
    5.扫描器完成务字符串形式源程序中识出具独立含义语法单位
    A. 字符 B.单词 C.句子 D.句型
    6.应Chomsky四种文法四种语言间关系
    A.L0ÌL1ÌL2ÌL3 B.L3ÌL2ÌL1ÌL0
    C.L3L2ÌL1ÌL0 D.L0ÌL1ÌL2L3
    7.词法分析务
    A.识单词 B.分析句子含义
    C.识句子 D.生成目标代码
    8.常中间代码形式含
    A.三元式 B.四元式 C.逆波兰式 D.语法树
    9. 代码优化目
    A.节省时间 B.节省空间
    C.节省时间空间 D.编译程序进行等价交换
    10.代码生成阶段务
    A.高级语言翻译成汇编语言
    B.高级语言翻译成机器语言
    C.中间代码变换成赖具体机器目标代码
    D.汇编语言翻译成机器语言


    二填空题(题5题题2分10分)
    1.编译程序首先识出源程序中(单词)然分析(句子)翻译意义
    2.编译器常语法分析方法(底)(顶)两种
    3.通常编译程分分析前端综合端两阶段词法语法语义分析源程序(分析)中间代码生成代码优化目标代码生成源程序(综合)
    4.程序设计语言发展带日渐变运行时存储理方案分两类(静态存储分配)方案(动态存储分配)方案
    5.编译程序言输入数(源程序)输出结果(目标程序)

    三名词解释题(5题题4分20分)
    1.词法分析
    词法分析务左右扫描行源程序符号词法规
    构成源程序字符串中识出具独立意义语法单位
    转换成统部表示(token)送语法分析程序
    2.LL(1)文法
    文法两产生式A ® a | b满足面两条件:
    (1)FIRST(a ) Ç FIRST(b ) f
    (2)b Þ* e FIRST(a ) Ç FOLLOW( A ) f
    满足两条件文法做LL(1)文法中第L代表左
    右扫描输入第二L表示产生左推导1代表决定分析器步
    动作时前输入符号没公左子外LL(1)文法
    明显性质二义含左递
    3.语法树
    句子树结构表示法称语法树(语法分析树语法推导树)
    定文法G(VNVTPS)G句型构造关联
    语法树棵树具列特征:
    (1)根节点标记开始符号S
    (2)节点标记V中符号
    (3)棵子树根节点A直接子孙标记左右排列
    次序A1A2…ARA®A1A2…AR定P中条产生式
    (4)标记A节点少外子孙AVN
    (5)树叶节点标记左右排列字符串ww文法G
    句型w中仅含终结符号w文法G产生句子
    4.LR(0)分析器
    谓LR(0)分析指左右扫描底语法分析分析
    步须根分析栈前已移进约出全部文法符号
    前查0输入符号确定相某产生式左部符号句柄否
    已分析栈顶部形成确定前应采取分析动作 (
    移进某产生式进行约等)

    5.语言文法
    文法语言结构定义描述穷非空产生式集合
    文法G定义四元组形式:
    G(VNVTPS)
    中:VN 非空穷集合称非终结符号集合VT 非空穷集合
    称终结符号集合P产生式集合(非空)S开始符号(识符号)
    里VN∩VTÆSVNVVN∪VT称文法G字母表出现
    文法产生式中切符号集合
    文法G描述语言L(G)表示文法G产生全部句子组成
    L(G){x| SÞ*x中S文法开始符号 }
    简单说文法描述语言该文法切句子集合

    四简答题(4题题5分20分)
    1.编译程序高级语言什区
    汇编语言高级语言编写程序必须先送入计算机转换成机器
    语言表示目标程序(程编译)计算机执行执行转换程
    程序编译程序汇编程序指没编译汇编语言源文件编译程序转
    换目标程序机器语言
    编译程序工作情况三种:汇编型解释型编译型汇编型编译程序
    汇编语言编写程序应关系转换成机器语言表示程序
    解释型编译程序高级语言程序语句先解释成组机器语言指令
    然立执行执行完取组语句解释执行继续完成程序
    止解释型编译程序执行速度慢进行计算机话时
    修改高级语言程序BASIC语言解释型高级语言编译型编译程序
    级语言编写程序次会部翻译成机器语言表示程序程进行快
    程中进行机话修改FORTRAN语言编译型高级语言
    2.编译程序工作分阶段
    词法分析语法分析语义分析源程序进行分析(称编译程序前端)
    中间代码生成代码优化代码生成三阶段合称源程序进行综合(称
    编译程序端)源程序中间表示建立起源程序等价目标程序
    3.简述分析方法
    谓分析法输入串开始逐步进行约直约文法
    开始符号者说语法树末端开始步步约直根节点
    4.简述代码优化目意义
    代码优化量生成代码编译阶段程序代码进行
    种等价变换保证变换前代码执行结果相前提量目
    标程序运行时需时间短时占存储空间少

    五综合应题(3题题10分30分)
    1.证明述文法G:
    S®aSbS|aS|d
    二义性文法
    解:
    文法果存某句子棵语法分析树应称
    文法二义性文法
    句子aadbd两棵语法树图:
    S
    a
    S
    S
    a
    b
    S
    d
    d
    d
    S
    S
    a
    b
    S
    S
    a
    d








    (1) (2)

    知S®aSbS|aS|d定义文法二义性文法
    A
    S
    B
    b
    B
    S
    a
    b
    2.文法G[S]:S®ABA®Aa|bBB®a|Sb求句型baSb全部短语直接短语句柄?
    句型baSb语法树图五(2)示









    解:baSb句型baSb相S短语ba句型baSb相A短语Sb句型baSb相B短语直接短语a句型baSb相B短语直接短语句柄

    3.设非确定限动机NFA M({ABC}{01}d{A}{C})中:
    d (A0){C} d (A1){AB} d (B1){C} d (C1){C}请画出状态转换距阵状态转换图
    解:状态转换距阵:
    d
    0
    1
    A
    C
    AB
    B
    Æ
    C
    C
    Æ
    C

    状态转换图1
    1
    0
    1
    1






    编译原理期末试题(六)
    编译原理 样题
    1.____型文法称正规文法
       [A] 0 [B] 1 [C] 2 [D] 3
    2.____文法LL(1)
       [A] 递 [B] 右递 [C] 2型 [D] 含公左子
    3. 文法E→E+E|E*E|i句子i*i+i*i语法分析树总数______
       [A]1 [B]3 [C]5 [D]7
    4.四元式间联系通 实现
    [A]时变量 [B]指示器 [C]符号表 [D]程序变量
    5.心集合会产生新突
    [A]二义 [B]移进移进 [C]移进约 [D]约约
    6.代码优化时
    [A]语法规 [B]词法规 [C]等价变换规 [D]语义规
    7.表达式a(b)*c逆波兰表示
    [A]ab@c* [B]ab@c* [C]ab@ [D]ab@c* (注:@单目减运算符)
    8.程DISPLAY表记录
    [A]程连接数 [B]程嵌套层次
    [C]程返回址 [D]程入口址
    二 填空题
    3.文法G1G2L(G1)L(G2) ( G1G2语言相)称文法G1G2等价
    4.文法G[E]:E→T|E+T T→F|T*F F→P^F|P P→(E)|i句型T+T*F+i句柄T 左素短语 T*F
    5.右推导逆程称规范约 称 左约
    6.规范规约中规约串句柄 算符优先分析中规约串 左素短语
    7.(A∨ B)∧(C∨ ¬D∧ E) 逆波兰式AB∨CD¬E∧∨∧
    8.属性文法中文法符号两种属性分称继承属性 综合属性(次序换)
    9.符号表项名字栏 址分配 两栏目组成目标代码生成阶段符号表 址分配
    10.程DISPLAY表容 直接外层 DISPLAY表容加程SP址

    三 穷动机M接受字母表S={01}满足述条件串:10直接右边构造DFA MM等价正规式




    四 证明正规式(ab)*a 正规式a(ba)*等价 (构造DFA方法)
    答案:

    五 写文法语言:
    L = { 1n0m1m0n | mn≥0 }
    五 文法G:S → 1S0 | A
    A → 0A1 | ε

    六 文法G[S]
      S → aSb | P
    P → bPc | bQc
    Q → Qa | a
    (1) 否算符优先文法?请构造算符优先关系表
    (2) 文法G[S]消左递提取左公子否LL(1)文法?请证实
    1求出G[S]FIRSTVT集LASTVT集:
    FIERSTVT(S){ab} LASTBVT(S){bc}
    FIERSTVT(P){b} LASTBVT(P){c}
    FIERSTVT(Q){a} LASTBVT(Q){a}
    构造优先关系表:

    a
    b
    c
    a
    < >
    <
    >
    b

    < >

    c

    >
    >
    优先关系中时出现a
    abb该文法算符优先文法
    2 消左递提取左公子文法:
    S → aSb | P
    P → bP’
    P’→ Pc |Qc
    Q → aQ’
    Q’→ aQ’|ε
    求具相左部两产生式Select集交集:
    Select(S→aSb)∩Select(S→P) {a}∩First(P) {a}∩{b} Ф
    Select(P’→Pc)∩Select(P’→Qc) First(P)∩First(Q){b}∩{a} Ф
    Select(Q’→aQ’)∩Select(Q’→ε) {a}∩Follow(Q) {a}∩{c} Ф
    修改文法LL(1)文法
    七 已知文法G
    (0) S′→ S
    (1) S → aAd
    (2) S → bAc
    (3) S → aec
    (4) S → bed
    (5) A → e
    试构造LR(1)项目集前缀图LR(1)分析表
    答案:

    e
    c
    A
    d
    I0
    S′→· S #
    S→· aAd #
    S→ · bAc #
    S→ ·aec #
    S→ · bed #
    I2:
    S→a · Ad #
    S→a · ec #
    A→· e d
    a
    I1:S′→S · #
    S
    I3 S→b · Ac #
    S→b · ed #
    A→· e c
    b
    I6 S→bA·c#
    A
    I7:S→be · d #
    A→e · c
    I11:
    S→bed · #
    d
    I10:
    S→bAc · #
    I4:S→aA· d #
    I5:S→ae· c #  A→e · d
    e
    I8:S→aAd · #
    I9:S→aec · #
    c















    构造LR(1)分析表



    r4





    11





    S10


    6


    r2





    10


    r3





    9


    r1





    8




    S11
    r5


    7




    r5
    S9


    5




    S8



    4
    6


    S7




    3
    4


    S5




    2


    acc





    1

    A

    #
    S3
    b

    e

    d

    c
    1
    S
    goto
    a
    S2
    action
    0

    状态





















    八 已知源程序:
    prod0
    i1
    while i≤20 do
    begin
    prodprod+a[i]*b[i]
    ii+1
    end
    试语法制导翻译法源程序翻译成四元式序列(设A数组a起始址B数组b起始址机器字节编址数组元素占四字节)
    答案:

    九 设程序段
    procedure P(xyz)
    begin
    Yy*3
    ZX+z
    end
    begin
    a5 b2
    p(a*baa)
    print(a)
    end
    参数传递方法分(1)传值(2)传址(3)传名试问结果分什?
    十 (1)传值 5 (2)传址 25 (3)传名 45

    十 文法请写出关括号嵌套层数属性文法(SL引入属性h记录输出配括号数)
    文法规
    语 义 规
    S→(T)

    S→i

    T→TS

    T→S

    答案:


    十 PL0语言while语句 while 条件B DO 语句S 编译程序
    请空缺处填空完成该语句编译算法:
    switch (SYM) { ……
    case WHILESYM
    CX1CX
    GetSym()
    CONDITION(SymSetAdd(DOSYMFSYS)LEVTX)
    CX2CX
    GEN(JPC00)
    if (SYMDOSYM)
    GetSym()
    else Error(18)
    STATEMENT(FSYSLEVTX)
    GEN(JMP0CX1)
    CODE[CX2]ACX
    break
    ……}
    编译原理期末试题(七)
    回答列问题:(30分)
    1.什S属性文法?什L属性文法?间什关系?
    解答:
    S属性文法含综合属性属性文法 (2分)
    L属性文法求产生式AàX1X2…Xn语义规中属性者综合属性者Xj继承属性该属性仅赖:
    (1) 产生式Xj左边符号X1X2…Xj1属性
    (2) A继承属性 (2分)
    S属性文法L属性文法特例 (2分)

    2.什句柄?什素短语?
    句型左直接短语称该句型句柄(3分)素短语样短语少包含终结符包含更素短语(3分)

    3.划分程序基块时确定基块入口语句条件什?
    解答:
    (1)程序第语句
    (2)条件转移语句条件转移语句转移语句
    (3)紧条件转移语句面语句

    4.(6分)运行时DISPLAY表容什?作什?
    答:DISPLAY表嵌套层次显示表进入程建立活动记录区时建立张嵌套层次显示表diaplay假定现进入程层次idiaplay表含i+1单元顶单元次存放着现行层直接外层…直外层(程序0层)等层程新活动记录起始址通DISPLAY表访问外层程变量

    5.(6分)列四元式序列生成目标代码:
    AB*C
    DE+F
    GA+D
    HG*2
    中H基块出口活跃变量 R0R1寄存器
    答:
    LD R0 B
    MUL R0 C
    LD R1 E
    ADD R1 F
    ADD R0 R1
    MUL R0 2
    ST R0 H

    二设S{01}正规集S倒数第二字符1字符串组成请出该字集应正规式构造识该正规集DFA(8分)
    答:
    构造相应正规式:(0|1)*1(0|1) (3分)
    NFA (2分)
    1 1

    1
    0
    4
    3
    2
    e e e e 1


    0 0
    确定化:(3分)
    I


    {012}
    {12}
    {123}
    {12}
    {12}
    {123}
    {123}
    {124}
    {1234}
    {124}
    {12}
    {123}
    {1234}
    {124}
    {1234}

    0
    1
    4
    3
    2
    1
    0
    0 1 0 0

    0 1

    1 1

    三写文法语言L(G){ anbmambn | mn≥1}(6分)
    答:文法G(S)
    S ® aSb | B
    B ® bBa | ba

    四文法G(E) (8分)
    E®T|E+T
    T®F|T*F
    F®(E)|i
    E
    T
    F
    (
    E
    )
    E
    +
    T
    F
    i
    T
    T
    *
    F
    1 写出句型(T*F+i)右推导画出语法树
    2 写出述句型短语直接短语句柄素短语


    答:
    1 (4分)
    EÞTÞFÞ(E) Þ(E+T) Þ(E+F)
    Þ(E+i) Þ(T+i) Þ(T*F+i)

    2 (4分)
    短语:(T*F+i) T*F+i T*F i
    直接短语:T*F i
    句柄:T*F
    素短语:T*F i


    五设文法G(S):(12分)

    1. 构造非终结符FIRSTVTLASTVT集合
    2. 构造优先关系表优先函数(12分)
    答:(6分)
    FIRSTVT(S){ i+)( }
    FIRSTVT(A){ +)( }
    FIRSTVT(B){ )( }

    LASTVT(S){ i+*( }
    LASTVT(A){ +*( }
    LASTVT(B){ *( }

    优先关系表 (3分)

    i
    +
    (
    )
    *
    i
    >
    <
    <
    <

    +
    >
    >
    <
    <
    >
    (
    >
    >


    >
    )

    <
    <
    <

    *
    >
    >


    >

    优先函数 (3分)

    i
    +
    (
    )
    *
    f
    2
    6
    6
    1
    6
    g
    1
    4
    6
    6
    1
    六设某语言dowhile语句语法形式 (9分)
    S ® do S(1) While E
    语义解释:


    S(1)代码
    E代码





    针语法分析器求构造该语句翻译模式:
    (1) 写出适合语法制导翻译产生式
    (2) 写出产生式应语义动作
    答:(1) 适合语法制导翻译文法(3分)
    G(S)
    R® do
    U®R S(1) While
    S®U E
    (2) (6分)
    R® do
    { RQUADNXQ }

    U®R S(1) While
    { UQUADRQUAD
    BACKPATCH(SCHAIN NXQ) }

    S®U E
    { BACKPATCH(ETC UQUAD)
    SCHAINEFC }

    答案二:
    (1) S ® do M1 S(1) While M2 E
    M ®ε (3分)
    (2) M ®ε { MQUAD NXQ } (6分)
    S ® do M1 S(1) While M2 E
    {
    BACKPATCH(S(1)CHAIN M2QUAD)
    BACKPATCH(ETC M1QUAD)
    SCHAINE FC
    }

    七(8分)语句
    if (A0) then while C>0 do CC+D
    翻译成四元式(8分)
    答:
    100 (j< A X 102)
    101 (j 109)
    102 (j> B 0 104)
    103 (j 109)
    104 (j> C 0 106)
    105 (j 109)
    106 (+ C D T1)
    107 ( T1 C)
    108 (j 104)
    109
    (控制结构3分5分)

    八(10分) 设基块:
    T1S+R
    T2 3
    T3 12T2
    T4SR
    AT1T4
    T5S+R
    BT5
    T6T5*T3
    BT6
    (1)画出DAG图
    (2)设AB出基块活跃变量请出优化四元式序列
    T1T5 B
    3
    T2
    4
    S
    R
    +

    *
    _
    T3
    T4
    A
    T6B
    n4
    n5
    n1
    n2
    n3
    n6
    n8
    n7
    答:(1) DAG右图:(6分)










    (2) 四元式序列:(4分)
    T1S+R
    T4SR
    AT1T4
    BT1*4

    九(9分) 设已构造出文法G(S):
    (1) S ® BB
    (2) B ® aB
    (3) B® b
    LR分析表


    ACTION
    GOTO
    状态
    a
    b
    #
    S
    B
    0
    s3
    s4

    1
    2
    1


    acc


    2
    s6
    s7


    5
    3
    s3
    s4


    8
    4
    r3
    r3



    5


    r1


    6
    s6
    s7


    9
    7


    r3


    8
    r2
    r2



    9


    r2



    假定输入串abab请出LR分析程(步骤出状态符号输入串变化程)
    答:
    步骤 状态 符号 输入串
    0 0 # abab#
    1 03 #a bab#
    2 034 #ab ab#
    3 038 #aB ab#
    4 02 #B ab#
    5 026 #Ba b#
    6 0267 #Bab #
    7 0269 #BaB #
    8 025 #BB #
    9 01 #S # acc


    编译原理期末试题(八)
    1.(10分)处* *间串构成注解注解中间没*画出接受种注解DFA状态转换图
    2.语言L = {ambn | 0 £ m £ 2n}(a数超b数两倍)
    写LR(1)文法准超6产生式(超6产生式分写文法LR(1)文法5分)
    3.(10分)构造面文法LL(1)分析表
    D ® TL
    T ® int | real
    L ® id R
    R ® id R | e

    4.(15分)面文法

    S ® ( L) | a L ® L S | S

    · 出语法制导定义输出配括号数
    · 出翻译方案输出a嵌套深度
    句子(a (a a) )第题输出2第二题输出1 2 2

    5.(10分)Pascal语言for语句含义见教材第222页题713请该语句设计种合理中间代码结构第215页图717方式者第219页图719方式写出设计需写产生中间代码语法制导定义

    6.(5分)C语言程序:

    func(i1i2i3)
    long i1i2i3
    {
    long j1j2j3
    printf(Addresses of i1i2i3 ooo\n&i1&i2&i3)
    printf(Addresses of j1j2j3 ooo\n&j1&j2&j3)
    }
    main()
    {
    long i1i2i3
    func(i1i2i3)
    }

    该程序某种机器Linux运行结果:

    Addresses of i1i2i3 277777754602777777546427777775470
    Addresses of j1j2j3 277777754442777777544027777775434

    面结果出func 函数3形式参数址次升高3局部变量址次降低试说明什会区

    7.(15分)C语言程序某种机器linux操作系统编译结果根生成汇编程序解释程序中四变量作域生存期置初值方式等方面区

    static long aa 10
    short bb 20

    func()
    {
    static long cc 30
    short dd 40
    }


    file staticc
    version 0101
    gcc2_compiled
    data
    align 4
    type aa@object
    size aa4
    aa
    long 10
    globl bb
    align 2
    type bb@object
    size bb2
    bb
    value 20
    align 4
    type cc2@object
    size cc24
    cc2
    long 30
    text
    align 4
    globl func
    type func@function
    func
    pushl ebp
    movl espebp
    subl 4esp
    movw 402(ebp)
    L1
    leave
    ret
    Lfe1
    size funcLfe1func
    ident GCC (GNU) egcs29166 19990314Linux (egcs112 release)

    8.(10分)C语言种类型语言强类型语言编译时类型检查保证接受程序没运行时类型错误例编译时类型检查般保证运行时没数组越界请举样例子说明C语言强类型语言

    9.(10分)果A机器C语言编译器CCA源码SA(C语言写成)利通量少工作B机器C语言编译器CCB

    10.(5分)表达式(lx(lyz(x + y) + z) 3) 4 5(lx(lyz(x + y) + z) 3 5) 4样结果抽象机FAM表达式应目标代码执行效率高?什?

    参考答案
    1.
    1
    2
    4

    start
    5
    2
    others
    others

    *
    *
    *






    2.LR(1)文法 LR(1)文法 二义文法
    S ® AB | aABb S ® AB S ® AASb | e
    A ® aaAb | e A ® aaAb | ab | e A ® a | e
    B ® Bb | e B ® Bb | e

    3. int real id
    D D®TL D®TL
    T T®int T®real
    L L®id R
    R R ® id R R ® e

    4. S¢ ® S print(Snum)
    S ® (L) Snum Lnum +1
    S ® a Snum 0
    L ® L1S Lnum L1num + Snum
    L ® S Lnum Snum

    S¢ ® {Sdepth 0} S
    S ® {Ldepth Sdepth +1} (L)
    S ® a {print(Sdepth)}
    L ® {L1depth Ldepth} L1 {Sdepth Ldepth} S
    L ® { Sdepth Ldepth} S
    5. t1 initial
    t2 final
    if t1 > t2 goto L1
    v t1
    L2 stmt
    if v t2 goto L1
    v v + 1
    goto L2
    L1
    6.实参表达式反序进入活动记录局部变量序活动记录中分配
    7.aa静态外部变量bb外部变量分配静态数区(data伪指令开始)bb伪指令globl指明全局解决文件中bb外部引aa文件引cc静态局部变量aabb样生存期整程序分配静态数区cc源程序中作域函数func体目标文件中作域少已整文件避免源文件中外部变量函数静态局部变量名字突进行改名成cc2cc全局cc2前面没伪指令globldd动变量作域函数func体生存期该函数激活期间分配栈区置初值运行时赋值实现

    8.例联合体类型检查般编译时完成然面例子静态判断类型错误
    union U { int u1 int *u2} u
    int *p
    uu1 10
    p uu2
    *p 0
    9. · 修改源码SA 代码生成部分产生B机器代码称结果程序SB
    · SB提交CCA进行编译执行程序
    · SB提交述执行程序进行编译需编译器CCB
    10.第表达式执行lyz(x + y) + z) 3时出现参数数足情况FUNVAL值进入栈顶然发现参数数足做成FANVAL情况第二表达式执行(lyz(x + y) + z) 3 5会出现参数数足情况第二表达式执行效率第表达式高

    编译原理期末题
    1 设文法G(S)试消左递
    G(S):S—>Ac|c
    A—>Bb|b
    B—>Sa|a
    解:S→abcS′|bcS′|cS′ S′→abcS′|
    2 试构造面G(S)等价左递文法
    G(S):S—>Sa|Nb|c
    N—>Sd|Ne|f
    解:S→fN′bS′|cS′ S′→aS′|dN′bS′| N′→eN′|
    3 设文法G(S):
    S—>aBc|bAB
    A—>aAb|b
    B—>b|ε
    ①求产生式FIRST集FOLLOW(A)FOLLOW(B)产生式SELECT集
    ②构造LL(1)分析表分析符号串baabbb否
    解:(1)FIRST(aBc){a} FIRST(bAB){b} FIRST(aAb){a} A→b FIRST(A→b){b} B→b FIRST(b) {b} FIRST(ε){ε}
    FOLLOW(A){b #} FOOLOW(B){c #}
    SELECT(S→aBc){a} SELECT(S→bAB) {b} SELECT(A→aAb){a} SELECT(A→b){b} SELECT(B→b){b} SELECT(B→){c #}
    LL(1)分析表表A4示
    表A4 LL(1)分析表
    输入
    VN
    输入符号
    a
    b
    c
    #
    S
    S→aBc
    S→bAB


    A
    A→aAb
    A→b


    B

    B→b
    B→
    B→

    (2)分析符号串baabbb成功baabbb该文法句子图A16示

    图A16 识串baabbb程
    4 列文法G(S):
    S—>D(R) R—>RP|P
    P—>S|I D—>i
    ①计算文法G中非终结符FIRSTVT集LASTVT集
    ②构造文法G算符优先关系矩阵
    解:(1)FIRSTVT(S){( i}FIRSTVT(D) {i}FIRSTVT(R){ ( i}FIRSTVT(P){i (}LASTVT(S){)}LASTVT(D){i}LASTVT(R) { ) i}LASTVT(P){i )}
    (2)算符优先矩阵表A5示
    表A5 优先矩阵

    (
    )

    i
    #
    (





    )











    i





    #





    5 已知文法G(S):
    S—>a|(T)
    T—>TS|S
    ①出句子((aa)a)左推导画出语法树②出句型(Ta(T))短语直接短语素短语左素短语句柄活前缀
    解:(1)左推导:S(T)(TS)(SS) (aS)(a(T))(a(TS))(a(SS))(a(a S))(a(aa))
    语法树:图A16示

    图A16 (a(aa))语法树
    (2)句型(T a (T))短语直接短语素短语左素短语句柄活前缀语法树(图A17)
    短语:a || Ta || (T) || T a (T) || (T a (T))
    直接短语:a || (T)
    素短语:a || (T)
    左素短语:a
    句柄:a
    活前缀: || ( || (T || (T || (T a

    图A17 (Ta(T))语法树
    6 设文法G(S):
    S—>a|aAb     S—>b|bBa
    A—>1A0|ε      B—>1B0|ε
    求①LR(0)项目集族②构造识文法G(E)DFA
     ③构造文法G(E)SLR(1)分析表
     ④分析句子a1100b识程
    解:(1)(2)LR(0)项目集族识活前缀DFA图A19示
    图A19 LR(0)
    项目集族DFA
    (3)(4)略




    . 填空题(空2分20分)
    1 编译程序关数空间存储分配策略部分编译中采方案两种:静态存储分配方案动态存储分配方案者分(1) (2)
    2 规范约(3)约
    3 编译程序工作程般划分5阶段:词法分析(4) 语义分析中间代码生成代码优化(5) 外(6)出错处理
    4.表达式x+y*z(a+b)缀式 (7)
    5.文法符号属性综合属性 (8)
    6.假设二位数组行存放元素占存储单元数组a[115120]某元素a[ij]址计算公式(9)
    7.局部优化局限(10)范围种优化


    二. 选择题(16单选题78选题问2分20分)
    1 文关文法G包括四组成部分:组终结符组非终结符( C)组(B )
    A. 字符串 B. 产生式 C. 开始符号 D. 文法
    2程序基块指( D)
    A. 子程序 B. 仅入口出口语句
    C. 没嵌套程序段 D. 组序执行程序段仅入口出口
    3 高级语言编译程序常语法分析方法中递降分析法属( B)分析方法
    A. 左右 B. 顶 C. 底 D. 右左
    4.通常语法分析方法中(A)特适表达式分析
    A. 算符优先分析法 B. LR分析法
    C. 递降分析法 D. LL(1)分析法
    5.编译目标程序( D)
    A. 四元式序列 B. 间接三元式序列
    C. 二元式序列 D. 机器语言程序汇编语言程序
    6. 文法描述语言(A )描述语言文法(C)
    A. 唯 B. 唯 C. 唯唯
    7. 果文法G中存句子满足列条件(BCD )时称该文法二义文法
    A. 左推导右推导相 B. 该句子两左推导
    C. 该句子两右推导 D. 该句子两棵语法树
    E. 该句子应语法树唯
    8. 面( BCD)语法制导翻译中采拉链—回填技术
    A 赋值语句 B 布尔表达式计算 C 条件语句 D 循环语句


    三. 解答题(60分)
    1. (15分)已知文法G[E]
    E→ETE|(E)|i
    T→*|+
    (1) 文法G改造成LL(1)文法(5分)
    (2) 构造文法G中非终结符FIRST集合FOLLOW集合(5分)
    (3) 构造LL(1)分析表(5分)
    2. (12分)定文法G[S]:S→S(S)|ε
    (1) 出句子(()())()()规范推导程(4分)
    (2) 指出步推导句型句柄(4分)
    (3) 画出该句子语法推导树(4分)
    3. (8分)移入规约分析程中采语法制导翻译模式产生式规约时立执行括号中动作
    A→aB {print 0}
    A→c {print 1}
    B→Ab {print 2}
    (1) 分析器输入aacbb时印字符串什?(3分)
    (2) 写出分析程(5分)
    4. (10分)翻译循环语句 while (ad) then xy+z 求:出加注释分析树四元式序列
    参考部分翻译模式:
    (1) S→if E then M S1 {backpatch(EtruelistMquad)
    Snextlistmerge(EfalselistS1 nextlist)}
    (2) S→while M1 E do M2 S1 {backpatch(S1nextlistM1quad)
    backpatch(EtruelistM2quad)
    SnextlistEfalselist
    emit (j’M1 quad)}
    (3) S→A {Snextlistmakelist()}
    (4) L→S {LnextlistSnextlist}
    (5) M→ε {Mquadnextquad}
    (6) E→id1 relop id2 {Etruelistmakelist(nextquad)
    efalselistmakelist(nextquad+1)
    emit(j’relopop’id1place ’id2place’0’)
    emit(j0’)}
    (7) S→LE {emit(EplaceLplace)}
    (8) E→E1+E2 {Eplacenewtemp
    emit(+E1placeE2placeEplace)}
    5. (15分)设表格构造文法G[S]:
    S→a|∧|(T)
    T→TS|S
    (1) 计算文法G[S]FIRSTVT集LASTVT集(5分)
    (2) 构造G[S]优先关系表判断G[S]否算符优先文法(5分)
    (3) 计算G[S]优先函数(5分)






    二. 单项选择题(题2分10分)
    1 设文法G[I]: I→I1|I0|Ia|Ic|a|b|c
    列符号串中该文法句子(B )
    ① ab0 ② a0c01 ③ aaa ④ bc10
    选项:
    A. ① B.②③④ C.③④ D.①②③④
    5. 运行阶段存储组织理目( C )
    ① 提高编译程序运行速度 ② 节省编译程序存储空间
    ③ 提高目标程序运行速度 ④ 运行阶段存储分配做准备
    选项:
    A ①② B ②③ C ③④ D ④②


    2 (10分) 已知文法G[S]
    S→aBc|bAB
    A→aAb|b
    B→b|ε
    (4) 构造LL(1)分析表
    (5) 判断符号串baabbb否该文法句子(写出含符号栈输入串规分析程)
    3 (10分) 已知文法G:
    E→E+T|T
    T→T*P|P
    P→i
    (1) 构造该文法优先关系表(考虑语句括号#)指出文法否算符优先文法
    (2) 构造文法G优先函数表
    4. (8分)移入规约分析程中采语法制导翻译模式产生式规约时立执行括号中动作
    S→bAb {print 1}
    A→(B {print 2}
    A→a {print 3}
    B→Aa) {print 4}
    (3) 输入序列b(((aa)a)a)b时印字符串什?
    (4) 写出移入规约分析程
    5. (12分)翻译循环语句 while (x>y) do if (ab) then x2*y+a 求:出加注释分析树三址码序列相应四元式序列
    参考部分翻译模式:
    (1) S→if E then M S1 {backpatch(EtruelistMquad)
    Snextlistmerge(EfalselistS1 nextlist)}
    (2) S→while M1 E do M2 S1 {backpatch(S1nextlistM1quad)
    backpatch(EtruelistM2quad)
    SnextlistEfalselist
    emit (j’M1 quad)}
    (3) S→A {Snextlistmakelist()}
    (4) L→S {LnextlistSnextlist}
    (5) M→ε {Mquadnextquad}
    (6) E→id1 relop id2 {Etruelistmakelist(nextquad)
    efalselistmakelist(nextquad+1)
    emit(j’relopop’id1place ’id2place’0’)
    emit(j0’)}
    (7) S→LE {emit(EplaceLplace)}
    (8) E→E1+E2 {Eplacenewtemp
    emit(+E1placeE2placeEplace)}
    6 (8分) Generate assembly code for the following sequence assuming that xy and z are in memory locations(noticing only two registers R1 and R2)
    S0
    I0
    L1 if x>y goto L2
    Zs+a[i]
    Ii+1
    Goto L1
    L2
    7. (6分) Give out the all basic blocks of the following program fragment and construct the relevant flow graph(DAG)
    read C
    A0
    B1
    L4 AA+B
    if B>C goto L2
    BB+1
    goto L4
    L2 write A
    8 (8分)Translate the assignment statement b[i]b*cb*d into
    (1) A syntax tree
    (2) Three address instructions


    答案:
    (1) 栈式动态存储分配
    (2) 堆式动态存储分配
    (3) 左
    (4) 语法分析
    (5) 目标代码生成
    (6) 表格理
    (7) xyz*ab++
    (8) 继承属性
    (9) a+(i1)*20+j1
    (10) 基块
    选择题(问2分20分)
    1C B 2D 3B 4A 5D 6AC
    7BCD选1分超满分选错扣分扣完止
    8BCD选1分超满分选错扣分扣完止
    二 解答题
    1.(1)文法存左递消左递文法:
    E→(E)E’|i E’(2分)
    E’→TEE’|ε (2分)
    T→*|+ (1分)
    (2)(5分)没考虑#扣05分错少写扣05分
    FIRST(E){(i} FIRST(E’){*+ ε} FIRST(T){*+}
    FOLLOW(E){)*+#} FOWLLOW(E’) {)*+#} FOLLOW(T){(i}
    (3)错扣05分全错写分扣完止5分

    (
    )
    i
    *
    +
    #
    E
    E→(E)E’

    E→iE’



    E’

    E’→ ε

    E’→TEE’
    E’ →ε
    E’→TEE’
    E’ →ε
    E’ →ε
    T



    T→*
    T→+

    2.(1)规范推导程写错推导符号扣05分错写少写步推导扣05分扣完止左推导扣2分4分
    (2)(1)中加划线部分句柄标识(1)少写句柄扣05分扣完止4分
    (3)少写步扣05分扣完止4分
    S
    S ( S )
    )
    S ( S ) ε
    )







    ε ε

    )
    S ( S ) ε
    )
    S ( S ) ε
    )
    ε S ( S )
    )









    3.(1)印字符串:12020(错扣05分3分)
    (2)约程中错步扣05分扣完止(5分)
    4.(1)少写步扣05分扣完止5分

    while M1q100 E1t102 do M2q102 S1
    E1f107

    do S1nl103
    (E3t102) ε Lpx E4pT1
    (E3f103)
    c>d x E5py + E6pz
    y z
    S
    ε a E2f103













    (2)少写四元式扣05分全错写分回填错误扣05分5分
    四元式序列:

    5.(1)少写扣1分全错写分5分
    FIRSTVT(S){a∧(}
    FIRSTVT(T){ a∧(}
    LASTVT(S){ a∧)}
    LASTVT(T){ a∧) }
    (2)优先表错扣05分全错写分扣完止3分
    文法G[S]没两非终结符相邻情况优先表中终结符间满足⋖⋗ 三种关系中种G[S]算符优先文法(2分)
    考虑终结符#

    a

    (
    )

    #
    A













    (






    )













    #







    (3)优先函数考虑终结符#错扣05分全错写分扣完止5分

    a

    (
    )

    #
    f
    6
    6
    2
    6
    6
    2
    g
    7
    7
    7
    2
    5
    2


    a

    (
    )

    f
    4
    4
    2
    4
    4
    g
    5
    5
    5
    2
    3

    三 填空题(空2分20分)
    1目标程序 (target code) 语法分析(syntax analyzer) 代码优化器(code optimizer) 代码产生器(code generator) 符号表理(symbol table manager)
    2 继承属性(inherited attribute)
    3 局部优化(local optimization)
    4 四元式(quatriple)
    5 E + * ( ) id
    四 单项选择题(题2分10分)
    1B 2D 3B 4D 5C
    五 解答题(70分)
    1.(1) L(G){0m1m|M≥1} 2分≥写成>扣1分
    (2) S>0S1>00S11>0001113分 >写成>扣1分
    (3) 3分错处扣05分扣完止
    2(1)空白表格填写错误字样4分错扣05分扣完止

    a
    b
    c
    (#)
    S
    S→aBc
    S→bAB


    A
    A→aAb
    A→b


    B

    B→b
    B→ε
    B→ε
    (2)6分中判断baabbb该文法句子2分错扣05分扣完止
    符号栈
    输入串

    S
    BAb
    BA
    BbAa
    BbA
    BbbAa
    BbbA
    Bbbb
    Bbb
    Bb
    b

    baabbb
    baabbb
    aabbb
    aabbb
    abbb
    abbb
    bbb
    bbb
    bb
    b



    S→bAB

    A→aAb

    A→aAb

    A→b


    B→ε
    success
    3(1) 6分中判断该文法算符优先文法2分错扣05分扣完止

    +
    *
    i
    +
    >
    <
    <
    *
    >
    >
    <
    i
    >
    >

    (2) 4分错扣05分扣完止

    +
    *
    i
    f
    2
    4
    4
    g
    1
    3
    5
    4.(1)34242421 4分错扣05分
    (2)4分错扣05分扣完止
    stack
    Input string
    action

    b
    b(
    b((
    b(((
    b(((a
    b(((A
    b(((Aa
    b(((Aa)
    b(((B
    b((A
    b((Aa
    b((Aa)
    b((B
    b(A
    b(Aa
    b(Aa)
    b(B
    bA
    bAb
    S
    s
    b(((aa)a)a)b
    (((aa)a)a)b
    ((aa)a)a)babbb
    (aa)a)a)bbbb
    aa)a)a)bbb
    a)a)a)b
    a)a)a)b
    )a)a)b
    a)a)b
    a)a)b
    a)a)b
    )a)b
    a)b
    a)b
    a)b
    )b
    b
    b
    b



    shift
    shift
    shift
    shift
    shift
    reduce A→a
    shift
    shift
    reduce B→Aa)
    reduce A→(B
    shift
    shift
    reduce B→Aa)
    reduce A→(B
    shift
    shift
    reduce B→Aa)
    reduce A→(B
    shift
    reduce S→bAb
    accept
    5. 12分中带注释分析树三址码序列四元式序列分4分错序列扣05分错某点(某项)少等5扣05分
    带注释语法树(略)
    三址码序列 四元式序列
    M1 if (x>y) goto M2 100 (j> xy102)
    goto M4 101 (j108)
    M2 if (ab) goto M3 102 (jab104)
    goto M1 103 (j100)
    M3 t12*y 104 (*2yt1)
    t2t1+a 105 (+t1at2)
    xt2 106 (t2x)
    goto M1 107 (j100)
    M4 108 ()
    6.8分错扣05分扣完止
    LD R10
    ST SR1
    ST IR1
    L1 LD R1X
    SUB R1R1Y (OR SUB R1Y)
    BGTZ R1L2
    LD R2a(R1)
    ADD R2R2S (OR ADD R2S)
    ST ZR2
    LD R1I (开始面语句中R1全部变成R2)
    ADD R1R11 (OR INC R1)
    ST IR1
    BR L1
    L2



    7. 6分基块划分流图3分错处扣 1分扣完止
    B4
    B3
    B2
    B1
    read c
    A0
    B1
    L4 AA+B
    If B>C goto L2 (OR B4)
    BB+1
    Goto L4 (OR B2)
    L2 write A










    8 (1)4分错项扣1分扣完止
    (2)4分错项扣1分扣完止
    t1b*c
    t2b*d
    t3t1t2
    t4i+1 (or t4i)
    b[t4]t3二选择题
    1.词法分析器识__单词___ 
    15.扫描器务源程序 中识出单词符号
    24.扫描器_词法分析器接受输入_源程序源程序进行__词法分析 识单词符号输出结果单词符号供语法分析器
    3.文关文法四组成部分组非终结符号组终结符号开始符号组 产生式
    4.BASIC典型解释性语言 
    5.解释_简单移植性执行速度慢
    6.高级语言编译 目标程序
    7.高级语言源程序 编辑 编译 连接  
    8.汇编 翻译 执行 __汇编器__完成
    9.文法 G 描述语言___文法开始符号推出终结符串__集合
    14.文法G产生___句子__全体该文法描述语言17. 文法描述语言___唯 __
    10.编译程序绝数时间花__表格理___ 包括:造表查表更新表格事务 
    13.规范约中___句柄__刻画约串
    18.中间代码生成代码优化部分必需
    19.__解释程序编译程序___两类程序语言处理程序
    20. 数组情量中肯定含数组_维数
    23. 通常编译程序中仅包含词法分析语法分析中间代码生成代码优化目标代码生成等五部分应包括___表格处理出错处理__
    G[N] ({b} {N B} N {N→b│bB B→bN} )该文法描述语言  L(G[N]){b2i+1│i≥0} 
    25.句型中左_简单短语__称该句型句柄
    26.G 定文法 S文法开始符号果 S>x( 中 x∈V*) 称 x 文法 G _句型__
    17.设G定文法S文法开始符号果S>x( 中 x∈VT*) 称 x文法_句子_
    27. G[E] :
    E→T∣E + T
    T→F∣T﹡F
    F→a∣ (E) E + F ﹡ (E + T)
    简单短语 ②E + T      ③F  
    29.语法分析处理中 FIRST 集合 FOLLOW 集合 SELECT 集合均___终结符集__
    31.词法分析器输出结果__单词种编码身值
    32 M 1 M 2 等价指M1M2识语言集相等
    33文法G:S→xSx|y识语言___ xnyxn(n≥0)
    34.果文法G二义句子α_____
    左推导右推导应语法树必定相
    39. 解释程序处理语言时 数采_____方法先源程序转化中间代码 解释执行
    40. 编译程中 语法分析器务
     (2)  分析单词串构成语句说明
    (3) 分析语句说明构成程序  
    (4) 分析程序结构
    41. 编译程序种___解释程序__
    1.语法分析语言_语法_规进行中间代码产生语言_语义 _规进行
    2.语法分析器输入单词符号串输出_语法单位
    3.名字属性包括__类型 作域
    4.产生式定义_语法成分_种书写规
    16产生式定义___语法范畴__种书写规
    5.逆波兰式缀表达式 ab+c+ d*e 表达表达式 (a+b+c)*de
    6.语法分析常两类方法
    7.词法分析基_正规__文法进行
    8.语法分析基__文关_文法
    语法分析效工具__语法树__
    9. Chomsky分类法文法__规定义形式_
    10.文法穷规描述穷符号串集合(语言)文法中存___递__定义规
    28.文法递产生语言句子_穷
    12.文法产生式配备组属性计算规称 ___语义规_
    14.程序语言语句分执行性语句说明性语句
    18.递降法允许非终极符直接__左_递
    12.采分析必须___消回溯 __递?
    25.分析法_移进约错误处理_接受
    19.顶 开始符号__开始进行_直接推导_试图推导出文法 句子_定输入串__匹配_
    20.底语法分析方法基思想:输入串入手利文法产生式步步_直接约 力求约文法__开始符号_
    30底语法分析方法中关键_选择候选式
    21.常参数传递方式_传址_传值传名
    37. 语法分析器发现源程序中___语法错误__
    22.高级语言编程时首先通编译程序发现源程序全部___语法__错误语义部分错误
    23.执行高级语言编写程序:_解释 编译_
    27.源程序高级语言编写 目标程序 机器语言程序汇编程序翻译程序称 _编译程序
    28.编译解释根区_否生成目标
    38. 解释程序特点处理程序时产生目标代码
    11.编译程序__高级语言翻译 ___
    29.编译程序输入 源程序 输出 目标程序
    35.构造编译程序应掌握_源程序  目标语言编译方法

    欢迎您光Word文档载修改编辑双击删页眉页脚谢谢希您提出您宝贵意见意见进步动力赠语 1果做做会笑果做做会笑索性做更笑吧 2现玩命学命玩3知道年少轻狂知道胜者王4做金钱权利奴隶应学会做金钱权利5什时候离光明?觉黑暗太黑时候6值欣赏风景奋斗足迹 7压力努力牛×倍然努力

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    相关文档

    《编译原理》期末试题(五)

    1.语言是A.句子的集合 B.产生式的集合 C.符号串的集合 D.句型的集合2.编译程序前三个阶段完成的工作是A.词法分析...

    2年前   
    725    0

    编译原理课后习题答案

    编译原理课后习题答案Chapter 11.解答:程序设计语言:程序设计语言是遵守一定规范的、描述“计算”(Computing)过程的形式语言。一般可以划分为低级语言和高级语言两大类。低级语言是...

    1年前   
    601    0

    《编译原理》课程实验报告

    《编译原理》课程实验报告题 目: 词法分析器实验 专 业: 计算机科学与技术 班 级: 1班 学 号: ...

    3年前   
    628    0

    编译原理实验指导书

    目 录相关问题说明 1实验题 2实验1 词法分析(2课时) 3实验2 语法分析(2课时) 5实验3 语义分析(2课时) 7实验4 代码生成(2课时) 9参考书目 11相关问题说明本课程共有4个...

    3年前   
    582    0

    编译原理课程设计报告 简单编译器的设计与实现

     编译原理课程设计 ——简单编译器的设计与实现 班 级: 组长: 组员: 指导教师: 设计时间: ...

    5年前   
    1880    0

    广东海洋大学编译原理期末复习资料

    广东海洋大学《编译原理》期末试题(一) 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.编译程序是对高级语言程序的解释执行。(× ) 2.一个有限状态自动机中...

    5年前   
    1762    0

    编译原理课后习题第三版答案

    第二章P36-6(1)是0~9组成的数字串(2)最左推导:最右推导:P36-7G(S)P36-8文法:最左推导:最右推导:语法树:/******************************...

    2年前   
    506    0

    编译原理语法分析实验报告

    编译原理语法分析实验报告软工班一、 实验内容二、 实验目的三、 实验要求四、 程序流程图l 主函数;l scanner();l irparser()函数l yucu() /*语句串分析*/l...

    2年前   
    945    0

    数据库期末试题(附答案)

    《数据库原理》课程考试模拟题四一、单项选择题(在每小题的四个备选答案中选出一个正确答案。本题共16分,每小题1分)1. 在数据库中,下列说法( )是不正确的。 A.数据库中没...

    3年前   
    3048    0

    (完整版)机械原理期末题库(附答案)

    (完整版)机械原理期末题库(附答案)机械原理期末题库(本科类)一、填空题:1.机构具有确定运动的条件是机构的自由度数等于。2.同一构件上各点的速度多边形必于对应点位置组成的多边形。3.在转子平...

    3年前   
    1508    0

    GCP试题集(附答案)

          第二部分   GCP试题 Part I_单选题 1001  任何在人体进行的药品的系统性研究,以证实或揭示试验用药品的作用、不良反应及/或研究药品的吸收、分布代谢和排泄,...

    7年前   
    10428    0

    会计学原理试题及答案

    对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资 高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定...

    2年前   
    493    0

    会计学原理试题及答案

    1. “资产=负债+所有者权益”这个平衡公式是资金运动的动态表现 ( )2. 借贷记账法的记账规则确立的依据是账户的基本结构 ( )3. 费用按其经济用途可以分为生产成...

    2年前   
    548    0

    电大专科《统计学原理》期末试题及答案

    一、 单项选择题(下列各题的备选答案中, 只有一个选项是正确的. 请把正确答案的序号填写在括号内。 每小题 2 分, 共 40 分)1. 统计学将由许多个小实体构成的同类实体看作集合, 称之为(...

    1年前   
    278    0

    2022年电大现代管理原理期末考试试题及答案

    单选1. ( )的最大的优点在于它持久、有形、可以核实。 C.书面沟通 2. ( )决策方法也叫思维共振法、畅谈会法。  C.头脑风暴法 3. ( )引起管理界的轰动,从此建立学习型组织、进行...

    2年前   
    931    0

    2019年电大现代管理原理期末考试试题及答案

    2019年电大现代管理原理期末考试试题及答案一、 将你的学号、 姓名及分校【工作站) 名称填写在答题纸的规定栏内。 考试结束后, 把试卷和答题纸放在桌上。 试卷和答题纸均不得带出考场。 监考人...

    4年前   
    1946    0

    系统工程原理期末试题及详细答案

    系统工程原理 模拟试题 考生注意:1.答案必须写在统一配发的答题纸上, 可不抄题! 2.考试时间为15:00—17:30,共150分钟。 ...

    3年前   
    1331    0

    编译原理实验3-4预测分析表方法

    实验3-4 预测分析表方法班级:_ _ 学号:_ _ 姓名:_ _ 得分:_ _一、实验目的理解预测分析表方法的实现原理。二、实验内容: ...

    1年前   
    317    0

    编译原理实验报告LR(1)分析法

    河南工业大学实验报告课 程 编译原理 实验名称 实验四 LR(1)分析法 一. 实验目的 1.掌握LR(1)分析法的基本原理; 2.掌握LR(1)分析表的构...

    2年前   
    1048    0

    编译原理实验报告LL(1)分析法

    课 程 编译原理 实验名称 实验二 LL(1)分析法 实验目的 1.掌握LL(1)分析法的基本原理; 2.掌握LL(1)分析表的构造方法; 3.掌握LL(1...

    1年前   
    399    0

    文档贡献者

    z***u

    贡献于2022-12-21

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!