·上一文章:飞机执行器寿命测试
·下一文章:使用NI PXI和LabVIEW实时模块有效简化硬件在环仿真系统
(2)分数的减法运算。TADA方法通过加法实现减法计算,如下所示。
语义:分数相减并约分,即:
(3)单位相乘。分别将3个量纲分数相加,然后使用BuildUnit生成新单位。
语义:单位Ua与单位Ub相乘后的新单位。
(4)单位相除。与乘法处理方式相似。
语义:若单位ua与单位Ub等价则不产生任何效果,否则产生编译期错误。
2.3 单位和量纲标注的原理和语法
与Osprey等方法类似,TADA方法也在待检测源程序进行单位标注,以使得检测器能够知道每个变量的单位。由于经过单位标注的待检测程序仍然是合法的可编译的程序,所以标注信息必须由语言自身已有的语法要素构成;标注信息还不能影响被标注变量的任何计算特性及使用方式,只有满足这两点要求的标注方式才能使标注工作量最小化。此外,已标注变量应该禁止从未标注变量进行各种隐含的类型转换,这样严格的限制才能有效进行单位量纲的匹配检测。对于C++语言来说,可以采用模板类的方式实现。
标注实质上是把语言原始的数据类型替换成TADA方法预定义的模板类,而模板类实现了各种运算符号的重载,同时禁止了任何隐含的类型转换,使得量纲标注既满足语法要素的要求,又满足计算兼容性的要求和禁止隐含转换的要求。TADA方法中标注的实现如下所示。