首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
一种基于模板元编程的量纲检测方法
来源:本站整理  作者:佚名  2009-07-14 10:06:17



2.2 单位和量纲的计算
    由于量纲都是用分数表示的,因而其计算会稍有麻烦。下面定义TADA方法中量纲分数的加、减、乘、除和等价测试运算。
    (1)分数的加法运算,如下所示。


    (2)分数的减法运算。TADA方法通过加法实现减法计算,如下所示。


    语义:分数相减并约分,即:

   
    (3)单位相乘。分别将3个量纲分数相加,然后使用BuildUnit生成新单位。


    语义:单位Ua与单位Ub相乘后的新单位。
    (4)单位相除。与乘法处理方式相似。


    语义:若单位ua与单位Ub等价则不产生任何效果,否则产生编译期错误。
2.3 单位和量纲标注的原理和语法
   
与Osprey等方法类似,TADA方法也在待检测源程序进行单位标注,以使得检测器能够知道每个变量的单位。由于经过单位标注的待检测程序仍然是合法的可编译的程序,所以标注信息必须由语言自身已有的语法要素构成;标注信息还不能影响被标注变量的任何计算特性及使用方式,只有满足这两点要求的标注方式才能使标注工作量最小化。此外,已标注变量应该禁止从未标注变量进行各种隐含的类型转换,这样严格的限制才能有效进行单位量纲的匹配检测。对于C++语言来说,可以采用模板类的方式实现。
    标注实质上是把语言原始的数据类型替换成TADA方法预定义的模板类,而模板类实现了各种运算符号的重载,同时禁止了任何隐含的类型转换,使得量纲标注既满足语法要素的要求,又满足计算兼容性的要求和禁止隐含转换的要求。TADA方法中标注的实现如下所示。


上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:74,492.19000 毫秒