算符优先分析java程序_算符优先分析
1. 已知算符优先关系矩阵如下表:
+
*
i
(
)
#
+
>
<
<
<
>
>
*
>
>
<
<
>
>
i
>
>
>
>
(
<
<
<
<
=
)
>
>
>
>
#
<
<
<
<
=
写出符号串(i+i)*i#的算符优先分析过程。
2.接上个作业(P121练习1),完成4),5)两个步骤。
1)计算FIRSTVT和 LASTVT。
2)找三种关系对。
3)构造算符优先关系表。
4)是否算符优先文法?
5)给出输入串(a,(a,a))#的算符优先分析过程。
3.尝试编写自下而上的语法分析程序。
可以只写表达式部分。
4.写出a+b*(c-d)+e/(c-d)↑n 的逆波兰表达式,三元式,四元式。
----------------------------------------------------------------------------------------------------------------------------------------------
(i+i)*i#
栈
关系
输入串
动作
1
#
<
( 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
#
接受
2.已知文法:
S -> a | ^ | (T)
T -> T , S | S
1)计算FIRSTVT和LASTVT。
2)找三种关系对。
3)构造算符优先关系表。
4)是否算符优先文法?
5)给出输入串(a,(a,a))#的算符优先分析过程。
因为:
E -> #S#
S -> a | ^ | (T)
T -> T , S | S
(1) 计算FIRSTVT和LASTVT。
FisrtVT(S) = { a , ^ , ( }
FirstVT(T) = { a , ^ , ( , , }
LastVT(S) = { a , ^ , ) }
LastVT(T) = { a , ^ , ) , , }
(2) 找三种关系对。
= :
#S#
(T)
< :
#S
(T
,S
> :
S#
T)
T,
(3) 构造算符优先关系表。
a
^
(
)
,
#
a
>
>
>
^
>
>
>
(
<
<
<
=
<
<
)
>
>
>
,
<
<
<
<
<
<
#
<
<
<
<
<
=
(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 ) )
#
接受
3.尝试编写自下而上的语法分析程序。
可以只写表达式部分。
4.写出a+b*(c-d)+e/(c-d)↑n 的逆波兰表达式,三元式,四元式。
逆波兰表达式
abcd-*+ ecd-n↑/ +
三元式
(1) ( - , c , d )
(2) ( * , b , (1) )
(3) ( + , a , (2) )
(4) ( - , c , d )
(5) (↑, (4) , n)
(6) ( / , e / (5) )
(7) ( + , (3) , (6) )
四元式
(1) ( - , c , d , t1 )
(2) ( * , b , t1 , t2 )
(3) ( + , a , t2 , t3 )
(4) ( - , c , d , t4 )
(5) (↑, t4 , n ,t5)
(6) ( / , e , t5 , t6 )
(7) ( + , t3 , t6 )
算符优先分析java程序_算符优先分析相关推荐
- 如何分析java程序_如何利用 JConsole观察分析Java程序的运行,进行排错调优
一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...
- 第一段Java程序_借助Win控制命令台编译执行 编辑器Notepad++
第一段Java程序_借助Win控制命令台编译执行 编辑器Notepad++ 准备代码: 第一次编译: 显然需要先配置环境变量: 先找到java.exe和javac.exe所在的文件夹位置: 此电脑-& ...
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- Java占Linux超过xms,linux下分析java程序占用CPU、内存过高
一.CPU过高分析 1)使用TOP命令查看CPU.内存使用状态可以发现CPU占用主要分为两部分,一部分为系统内核空间占用CPU百分比,一部分为用户空间占用CPU百分比.其中CPU状态中标示id的为空闲 ...
- dos下编写java程序_在DOS命令行状态下,如果命令java Hello成功运行了程序,那么下面哪些叙述是正确的()...
[判断题]在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件. [论述题]你认为堂吉诃德是一个怎样的人? [简答题]练习函数 [单选题]下列制度体现商法提高交易效率 ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- qtp启动java程序_转: QTP六脉神剑之调用Java程序
查看( 1147 ) / 评论( 21 ) 六脉神剑之调用程 序0Xp1zLN_0版权声明:原创作品,转载请以链接方式注明出自http://www.51testing.com/?35,否则将追究法律责 ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)
一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...
- java 分析java死锁_有益的CountDownLatch和棘手的Java死锁
java 分析java死锁 您是否曾经使用过java.util.concurrent.CountDownLatch ? 这是在两个或多个线程之间实现同步的非常方便的类,在该类中,一个或多个线程可以等待 ...
最新文章
- 发现了lucene一个bug
- mysql show作用_MySQL show的用法
- Google Maps API 进级:通过XML文档加载Gpolyline或者Gpolygon
- 防止stack buffer overflows攻击的方法 : Canary 漏洞缓解机制
- WCF异常:HTTP 无法注册,另一应用程序正在使用 TCP 端口 80
- Linux下Openssl的安装全过程
- 华硕笔记本电池软件_华硕灵耀X逍遥测评:11代酷睿处理器加持,王者归来
- html5拼图微信小游戏,微信小程序:拼图游戏
- IDEA 插件开发 - 创建自定义私有仓库
- 用什么软件测试固态硬盘写入速度,利用CrystalDiskMark工具检测电脑SSD固态硬盘读写速度...
- css让全局字体为微软雅黑,wordpress主题通过自定义CSS实现全局更换微软雅黑字体...
- Python-生成gif图片验证码
- html5级联菜单,h5级联下拉、分类筛选
- 使用idb操作IndexedDB
- .avi文件转为.mp4
- MathorCup大数据竞赛-北京移动用户体验影响因素问题思考
- Formal verification (FV) 处理复杂度 形式验证 第10章
- 2019国网二批计算机类分数线,最新数据分析:2019国网第一批次公示名单这些学校最吃香!...
- python全数字问题_关于python:获取一个数字的所有除数的最佳方法是什么?
- 优信二手车业务规模大幅增长 业绩亮眼