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



2.4 定义单位量纲
    量纲检测系统应该预定义常用单位量纲,以方便应用开发人员使用。TADA方法采用如下方式定义单位量纲:



2.5 数学运算函数的量纲包装
   
对于指数、对数、三角函数等已有的数学运算函数,其参数与返回值都是没有单位量纲的,不能直接用于有量纲的公式计算。针对这个问题,.TADA方法提供了这些函数的量纲包装,以sqrt和sin为例如下:


2.6 辅助工具
    TADA方法还提供了一些辅助工具,用于将量纲变量以适合阅读的方式显示出来,例如:


    可以得到这样的输出结果:0.2米/秒2
2.7 分析和评估
   
在TADA方法的基础上,实现了面向C/C++程序的量纲检测系统(TADA系统),并对TADA系统的检测能力进行了分析和评估。
    首先采用TADA系统来检测下面的样例程序。


    在TADA系统中,Visual Studio 2003编译该程序会出现类似如下的错误信息,错误信息的第3行就表明了unit.epp的第9行有错误。


    在检测能力方面,采用文献的样例程序对TA-DA系统和Osprey系统的量纲检测能力进行了对比评估。在文献中,Osprey共找到了3个错误,其中前2个是单位误用错误,第3个是单位转换比例因子错误。TADA系统也完全找到了前2个错误,而第3个错误在标注时被避免掉了,因为该单位系统包含了量纲之间的比例因子,能够进行自动的单位转换。
    在性能和可扩展性方面,TADA系统能够更有效地实现对c/c++程序的量纲检测。Osprey系统引入了具有较高计算复杂度的线性方程组求解步骤,需要很大的计算和时间开销来解线性解方程组。TADA系统基于模板元编程技术,只需要利用语言自身的语法能力,靠编译器进行单位量纲检查,没有带来太多额外的复杂计算。并且TADA系统不会带来任何程序的运行时开销。因此TADA系统可适用于各种规模的C/C++程序,具有更好的性能和可扩展性。
    在易用性方面,TADA系统的标注负担与Osprey系统相当。由于TADA系统利用C++编译器的功能进行错误检测,而C++编译器遇到模板错误时的错误信息却不很直观,错误报告的可读性较弱,但仍可以快速定位到错误点。

3 结 语
   
这里提出一种新颖的基于模板元编程的单位量纲检测方法TADA,并基于该方法实现了一个单位量纲检测系统。
    TADA方法采用模板元编程技术,使得经过单位量纲标注的受测程序仍然是一个完整、合法、可编译的C/C++程序,无需维护多套程序代码,也无需进行复杂的解方程组运算,就能够在程序代码中发现量纲错误,具有良好的实用性和可扩展性,可以有效适用于多种规模程序的量纲检测。

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

关键词:

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

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:72,882.81000 毫秒