使用Lex, Yacc 编写的算术表达式的解析器和计算器工具
来源:互联网 发布:软件著作权真伪查询 编辑:程序博客网 时间:2024/04/28 10:18
整理旧机器,看到自己刚工作不久时做的算术表达式的解析器和计算器工具。那是头一次使用Lex, Yacc 来开发东西,挺喜欢这种编程模式。对比过程式的编程,这类声明型的编程只需要编写若干规则,词法语法产生式,由引擎按这些规则来做逻辑处理。抽象一些说,只定义对象的内在和外在的反应规则,由对象自己去按这些规则去生活;而不是强制地让对象做一系列的反应,让这些对象只能是死的对象。
开发这类程序的关键是要对所有的状态迁移,状态机模型有清晰,准确的了解,不能有不应该出现的环路,不能有冲突的规则优先级。另外当运行结果与设计不符合的时候,调试并且发现错误也比较麻烦,一些工具提供了调试器,但对比过程式的编程,声明型程序的调试还是要麻烦一些,更依赖于编程者的功力。
如今,声明型编程的规则引擎运用逐渐普遍,在业务活动监控,风险控制,算法交易方面,声明型编程的应用会越来越广。需要在这方面多多积累。
源代码,文档都上传至 http://download.csdn.net/source/2457085。 传统的计算器工具都是从左至右单步计算的,这里开发的工具可以输入完整的算术表达式(包含括号),一次计算求值,表达式里还可以带未知数,在表达式后面给 未知数赋值即可。使用试例如下,
>expression (5+3)*9-(10/2)
>The value of result is 67
>expression (x+y)*z-a/b x=10 y=20 z=5 a=10 b=2
>The value of result is 145
- 使用Lex, Yacc 编写的算术表达式的解析器和计算器工具
- 用lex和yacc实现的计算器
- LEX和YACC的使用
- 简易计算器(使用Lex和Yacc)
- 使用LEX&YACC设计一个计算器的例子
- LEX和YACC的使用一
- LEX和YACC的使用二
- LEX和YACC的使用三
- 用Lex(flex)和yacc(bison)写的简单计算器
- 神奇的lua:lex和yacc实现计算器
- 编译器是怎么工作的?使用yacc 和lex 写一个计算器(1)
- lex与yacc(二)计算器的实现
- sql解析之lex和yacc工具
- 使用 yacc 和 lex 编写文本分析器
- Lex与Yacc的使用
- yacc和lex的林林总总
- Lex和Yacc的入门
- Lex和Yacc从入门到精通(4)-能够使用C++的Lex和Yacc框架
- XP下安装Ubuntu要注意的问题
- 黄建敏——06软
- AndroidRobot博客开通啦,主要用来发表android开发的一些文章,欢迎大家交流!谢谢
- apache2.2.15+php-5.2.13的安装与配置
- ORA-11254,我搞定你了。
- 使用Lex, Yacc 编写的算术表达式的解析器和计算器工具
- 各位电子商务的学弟学妹们:
- 页面传值
- [转帖]卡尔曼滤波器通俗解释 – Kalman Filter
- php基本表单验证
- 恐惧着,并且进步着
- Cisco交换机端口广播风暴设置
- 辞职了
- delphi2010 indy10 mime编码 bug