逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。(摘自维基)
关于“逆波兰式算法”的具体内容,请看这里 http://baike.baidu.com/view/2582.html ,里面解释得很好。对于脚本来说,一旦转成后缀表达式,运算效率非常高,因此,在大系统、大数据量运算时,可能是一个很好的选择。
本人在https://blog.csdn.net/AK520123456/article/details/47682127/的基础上进行了算法完善和功能扩充,主要特点:
- 运算符和优先级与c语言一致;
- 支持逻辑和数值混合运算,互转规则:数值的0<->布尔的false;非0数值->布尔的true;布尔的true->数值1
- 数值运算会转换成双精度后再进行计算,注意精度损失的情况。
- 支持外部变量引用,可以与具体的业务进行关联。变量引用格式:[name],“[ ]”内不允许再有“[ ]”。
- 名称、函数不区分大小写。
- 支持19种常用函数,满足工业数据处理的需要。
算法demo的界面如下:
该算法已经在上海隐图智能科技的PLC-Recorder录波系统的离线分析软件Ana上进行了应用,用于构建和计算虚拟变量,软件相关界面如下:
2020年8月3日