免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3883 | 回复: 5
打印 上一主题 下一主题

【HELP】练习 2.9 构建一个语法制导翻译模式,将整数翻译成罗马数字。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-07 14:49 |只看该作者 |倒序浏览
初学编译原理,看得龙书第一版
第二章 练习 2.9 构建一个语法制导翻译模式,将整数翻译成罗马数字。
想了半天不得其门而入,谁能指点一下啊。

论坛徽章:
0
2 [报告]
发表于 2007-11-07 14:50 |只看该作者
我找的一些资料

整数
整数(Integer)
序列
…,-2,-1,0,1,2,…
中的数称为整数.整数的全体构成整数集,它是一个环,记作Z(现代通常写成空心字母Z).环Z的势是阿列夫0.
在整数系中,自然数为正整数,称0为零,称-1,-2,-3,…,-n,… 为负整数.正整数,零与负整数构成整数系.
正整数是从古代以来人类计数(counting)的工具.可以说,从「一头牛,两头牛」或是「五个人,六个人」抽象化成正整数的过程是相当自然的.事实上,我们有时候把正整数叫做自然数(the natural numbers).
零不仅表示「无」,更是表示空位的符号.中国古代用算筹计算数并进行运算时,空位不放算筹,虽无空 位记号,但仍能为位值记数与四则运算创造良好的条件.印度-阿拉伯命数法中的零(zero)来自印度的(sunya)字,其原意也是「空」或「空白」.
中国最早引进了负数.《九章算术.方程》中论述的「正负数」,就是整数的加减法.减法的需要也促进了负整数的引入.减法运算可看作求解方程a+x=b,如果a,b是自然数,则所给方程未必有自然数解.为了使它恒有解,就有必要把自然数系扩大为整数系.
正整数,零,和负整数合称整数(the integers).整数是人类能够掌握的最基本的数学工具.十九世纪德国伟大数学家 Kronecker因此说:「只有整数是上帝创造的,其他的都是人类自己制造的.」
一个给定的整数n可以是负数(n∈Z-),非负数(n∈Z*),零(n=0)或正数(n∈Z+).
参见:代数数(Algebraic Integer), 复数(Complex Number), 可数数(Counting Number), 自然数集 N, 自然数(Natural Number), 负数(Negative), 正数(Positive), 实数(Real Number), Z, Z-, Z+, Z*, 零(Zero).

论坛徽章:
0
3 [报告]
发表于 2007-11-07 14:52 |只看该作者
罗马数字 http://baike.baidu.com/view/42061.htm

可以知道罗马数字没有0和负数形式的表示,题解必定只能针对自然数部分。我现在不知道该如何写这个翻译模式,怎么确定基本单元,怎么推导,完全没有思路,希望懂得能指点一下。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2007-11-07 22:52 |只看该作者
先学会自己表示罗马数字,然后考虑自己是怎么一步步表示的,然后再来思考计算机的事情,这样就可以做出来。

论坛徽章:
0
5 [报告]
发表于 2007-11-08 12:56 |只看该作者
我觉得完全无法理解语法制导翻译的思路,脑子打转,迷糊ing

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2007-11-09 15:32 |只看该作者
首先,你自己会转换吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP