设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
智能计算—— LinuxSir.cn
›
Linux及计算机学科基础理论版
›
[编译原理]请问整理一次表达式的算法能否实现 ...
返回列表
查看:
1452
|
回复:
3
[编译原理]请问整理一次表达式的算法能否实现
[复制链接]
graydream
graydream
当前离线
积分
1293
IP卡
狗仔卡
发表于 2005-12-19 08:51:24
|
显示全部楼层
|
阅读模式
形如dy+b(a(x+y)-cz)的一次表达式能否通过算法整理成简单的形如:Ax+By+Cz的形式。
其中x,y,z.....是变量,a,b,c,d......A,B,C......是常量。元数不固定。整理前后都是字符串形式。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
Yuri
Yuri
当前离线
积分
3231
IP卡
狗仔卡
发表于 2005-12-19 09:22:24
|
显示全部楼层
哎呀,不懂啊.小弟没有上过学.不懂这些.惭愧
回复
支持
反对
使用道具
举报
显身卡
soloforce
soloforce
当前离线
积分
2280
IP卡
狗仔卡
发表于 2005-12-19 10:04:11
|
显示全部楼层
可以的。如果你熟悉语法制导翻译,并利用yacc的话实现起来非常简单。
比如只含加法和乘法以及括号的文法表示如下,为expression 设立 综合属性s和继承属性i,用来保存系数值。每解析一次加法、乘法、括号运算,就进行属性计算,并把表达式分解为 item + item + item ... 的形式,边分解边把项插到前面已经排序好的字符串中。如果不用yacc辅助,可以采用手工栈操作的方式。
start -> expression
expression --> expression + mul_expression | mul_expression (只计算s,但要用到i)
mul_expression --> mul_expression * item | item (只计算s,但要用到i)
item --> const var | const * ( expression ) (要计算s, i, 也要用s )
回复
支持
反对
使用道具
举报
显身卡
graydream
graydream
当前离线
积分
1293
IP卡
狗仔卡
楼主
|
发表于 2005-12-23 09:55:29
|
显示全部楼层
多谢阿,yacc之类的东东还没玩过,等我试试。
手工栈操作好像很麻烦的,还没画明白
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表