新聞中心

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

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

        作者: 時間:2009-07-14 來源:網絡 收藏
        2.4 定義單位量綱
        量綱檢測系統應該預定義常用單位量綱,以方便應用開發人員使用。TADA方法采用如下方式定義單位量綱:

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



        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石屏县| 庆城县| 精河县| 林西县| 普格县| 霍州市| 理塘县| 城固县| 鄂伦春自治旗| 宜良县| 宿迁市| 赤壁市| 九江市| 句容市| 彩票| 祁门县| 桦甸市| 富民县| 孟津县| 汉源县| 德化县| 耿马| 商城县| 收藏| 聊城市| 和静县| 萝北县| 庄浪县| 抚顺县| 三门县| 盐源县| 容城县| 台州市| 滕州市| 石渠县| 雅安市| 汉寿县| 上思县| 防城港市| 大新县| 从化市|