cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2471|回复: 8

新函数、关于编译器

[复制链接]
发表于 2010-4-2 14:42:51 | 显示全部楼层 |阅读模式
div(x,y)=int(x/y)*y
mod(x,y)=fpart(x/y)*y
bit(x,y)=mod(div(x,2^y),2)
不详解了,应该挺容易看懂
通过以上函数及一个“内存”A、一个“指针”B,应该能实现类似于图灵机的功能
另外,在研究二进制的and()和or()



关于编译器的研究,现在遇到一点困难,主要是处理括号和优先级的问题
现在主要考虑的是两种
1.先全加括号,再根据优先级简化括号
2.模仿ES的自然书写的处理方式,应用递归解决
(仍然纠结ing)

====
编辑:
可能的简化过滤
++,--,+-,-+ -> +,+,-,-
@@*&& -> @@&&
(@@) -> @@
发表于 2010-4-2 17:36:44 | 显示全部楼层
按位与或非?好难
发表于 2010-4-2 22:19:59 | 显示全部楼层
讨厌C的无数个大括号、
讨厌Delphi的无数个begin:
还是VB好j_0002.gif
发表于 2010-4-3 09:57:09 | 显示全部楼层
3# 991es82es
讨厌vb的then和endif,支持c的大括号
哈哈
 楼主| 发表于 2010-4-3 15:26:02 | 显示全部楼层
支持TI8X+的类Basic语言~
发表于 2010-4-3 15:48:38 | 显示全部楼层
永远不能支持nspire的函数输入方法
 楼主| 发表于 2010-4-5 09:40:27 | 显示全部楼层
ES的语言风格还是要着眼于计算器本身,另外尽可能要精简、易懂
(废话。。)
发表于 2010-5-31 10:22:57 | 显示全部楼层
顶顶顶!!!
发表于 2010-6-8 14:09:44 | 显示全部楼层
来此学习,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-4-24 18:13 , Processed in 0.057302 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表