• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鲨鱼辣椒醋
博客园    首页    新随笔    联系   管理    订阅  订阅

作业十四----算符优先分析

1. 已知算符优先关系矩阵如下表:

 

+

*

i

(

)

#

+

>

<

<

<

>

>

*

>

>

<

<

>

>

i

>

>

   

>

>

(

<

<

<

<

=

 

)

>

>

   

>

>

#

<

<

<

<

 

=

 写出符号串(i+i)*i#的算符优先分析过程。

 

栈

关系

输入串

动作

 

#

< 

(i+i)*i#

移进

 

#(

< 

i+i)*i#

移进

 

#(i

> 

+i)*i#

归约

 

#(N

< 

+i)*i#

移进

 

#(N+

< 

i)*i#

移进

 

#(N+i

> 

)*i#

归约

 

#(N+N

> 

)*i#

归约

 

#(N

=

)*i#

移进

 

#(N)

> 

*i#

归约

 

#N

-

*i#

移进

 

#N*

< 

i#

移进

 

#N*i

> 

#

归约

 

#N*N

> 

#

归约

 

#N

 

#

接受

 

 

2.接上个作业(P121练习1),完成4),5)两个步骤。

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

3)构造算符优先关系表。

4)是否算符优先文法?

  符合优先算法

5)给出输入串(a,(a,a))#的算符优先分析过程。

 

栈

关系

输入串

动作

 

#

< 

(a,(a,a))#

移进

 

#(

< 

a,(a,a))#

移进

 

#(a

> 

,(a,a))#

归约

 

#(N

< 

,(a,a))#

移进

 

#(N,

< 

(a,a))#

移进

 

#(N,(

< 

a,a))#

移进

 

#(N,(a

> 

,a))#

归约

 

#(N,(N

< 

,a))#

移进

 

#(N,(N,

< 

a))#

移进

 

#(N,(N,a

> 

))#

归约

 

#(N,(N,N

> 

))#

归约

 

#(N,(N

=

))#

移进

 

#(N,(N)

> 

)#

归约

 

#(N,N

> 

)#

归约

 

#(N

=

)#

移进

 

#(N)

> 

#

归约

 

#N

 

#

接受

 

3.尝试编写自下而上的语法分析程序。

可以只写表达式部分。

 

4.写出a+b*(c-d)+e/(c-d)↑n 的逆波兰表达式,三元式,四元式。

三元式:(1)(-  c,d)

    (2)(* b,(1))

    (3)(+ a,(2))

    (4)(-  c,d)

    (5)(↑  (4),n)

    (6)(/ e,(5))

    (7)(+ (3),(6))

四元式:(-,c,d,t1)

    (*,b,t1,t2)

    (+,a,t2,t3)

    (-,c,d,t4)

    (↑,t4,n,t5)

    (/,e,t5,t6)

    (+,t3,t6)

逆波兰式:abcd-*ecd-n↑/+

posted @ 2019-12-12 21:48  鲨鱼辣椒醋  阅读(157)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3