新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 一種基于模板元編程的量綱檢測方法

        一種基于模板元編程的量綱檢測方法

        作者: 時間:2009-07-14 來源:網絡 收藏
        2.2 單位和量綱的計算
        由于量綱都是用分數表示的,因而其計算會稍有麻煩。下面定義TADA方法中量綱分數的加、減、乘、除和等價測試運算。
        (1)分數的加法運算,如下所示。

        本文引用地址:http://www.104case.com/article/195807.htm


        (2)分數的減法運算。TADA方法通過加法實現減法計算,如下所示。


        語義:分數相減并約分,即:


        (3)單位相乘。分別將3個量綱分數相加,然后使用BuildUnit生成新單位。


        語義:單位Ua與單位Ub相乘后的新單位。
        (4)單位相除。與乘法處理方式相似。


        語義:若單位ua與單位Ub等價則不產生任何效果,否則產生編譯期錯誤。
        2.3 單位和量綱標注的原理和語法
        與Osprey等方法類似,TADA方法也在待檢測源程序進行單位標注,以使得檢測器能夠知道每個變量的單位。由于經過單位標注的待檢測程序仍然是合法的可編譯的程序,所以標注信息必須由語言自身已有的語法要素構成;標注信息還不能影響被標注變量的任何計算特性及使用方式,只有滿足這兩點要求的標注方式才能使標注工作量最小化。此外,已標注變量應該禁止從未標注變量進行各種隱含的類型轉換,這樣嚴格的限制才能有效進行單位量綱的匹配檢測。對于C++語言來說,可以采用模板類的方式實現。
        標注實質上是把語言原始的數據類型替換成TADA方法預定義的模板類,而模板類實現了各種運算符號的重載,同時禁止了任何隱含的類型轉換,使得量綱標注既滿足語法要素的要求,又滿足計算兼容性的要求和禁止隱含轉換的要求。TADA方法中標注的實現如下所示。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长海县| 墨竹工卡县| 苗栗县| 广汉市| 开远市| 康平县| 本溪市| 闻喜县| 静宁县| 申扎县| 平原县| 都江堰市| 新兴县| 莱芜市| 农安县| 德钦县| 栾城县| 长泰县| 庆安县| 阳曲县| 云梦县| 石泉县| 敖汉旗| 呼玛县| 三门峡市| 门头沟区| 长丰县| 恩平市| 弥渡县| 吴旗县| 房产| 朝阳区| 普陀区| 漾濞| 隆德县| 广河县| 永兴县| 平阴县| 东辽县| 沙湾县| 周宁县|