亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        設(shè)備報警表達式的編譯淺談

        2018-04-13 03:47:48劉樂云
        數(shù)字通信世界 2018年2期
        關(guān)鍵詞:運算符數(shù)據(jù)類型參考值

        張 宇,王 珂,劉樂云

        (上海廣播電視衛(wèi)星地球站,上海 201114)

        1 引言

        計算機編譯原理在開發(fā)工具中是作為基礎(chǔ)進行實現(xiàn)的,可在常見的應(yīng)用場景下很少被采用。主要原因是有以下幾點:一是,應(yīng)用程序的實現(xiàn)主要是與用戶接觸,更多與自然語言以及自然行為有關(guān),更偏向于模糊與概率,所以人工智能在這方向應(yīng)用的比較多也更合適。但在與設(shè)備通訊時,對于參數(shù)的判定要求真實,不存在模棱兩可的情況。因此,我們在開發(fā)這方面的程序時,會使用判定語句、條件語句和一些運算來計算出報警情況,在效率、安全和開發(fā)難度的綜合考慮下,我們會在程序中固化這些策略。但在長期的使用中發(fā)現(xiàn),因為涉及的參數(shù)比較多,如果出現(xiàn)判斷策略的改變,這將導(dǎo)致較大的程序升級,升級就意味了測試與成本。為了提高維護效率以及避免這種情況的更新需求,通過對報警策略進行解釋表達式的方式進行開發(fā),變得非常有價值。用戶只需要在程序里修改報警表達式,就可以滿足所有的報警策略方面的軟件升級。

        2 報警策略的常見表達式、數(shù)據(jù)類型以及表達式的抽象結(jié)構(gòu)

        在設(shè)備監(jiān)控中,常見的參數(shù)報警策略有以下一項或多項的與或組合:

        ⊙ 大于參考值。

        ⊙ 小于參考值。

        ⊙ 等于參考值。

        ⊙ 不等于參考值。

        ⊙ 在范圍內(nèi)(包括范圍)。

        ⊙ 在范圍外(包括范圍)。

        ⊙ 枚舉參數(shù)值。

        在設(shè)備監(jiān)控中,常見的參數(shù)報警策略可能用到的數(shù)據(jù)類型:

        ⊙ 整形。

        ⊙ 浮點數(shù)。

        ⊙ 布爾數(shù)。

        ⊙ 字符串。

        ⊙ 時間。

        ⊙ ……

        例如:當需要制定溫濕度報警時,我們可能寫入如下策略:

        設(shè)定室內(nèi)溫度24℃為參考溫度,當溫度高于等于參考值2℃(26℃)時進行警告,當溫度低于等于參考值2℃(22℃)時進行警告,當溫度高于等于4℃(28℃)時報警,當溫度低于等于4℃(20℃)時進行報警。

        else Normal();//溫度正常這樣的表達式對于一般的程序員來說沒有問題,但這些語句必須被寫入程序,當參考值由24調(diào)整為25時,我們的程序可能需要做一些調(diào)整,將所有的上下限做相應(yīng)的加1修改就可以了。但當這樣的調(diào)整很頻繁時,我們不得不修改程序的結(jié)構(gòu),將參考值、當前值、警告時范圍、報警時范圍都考慮在內(nèi),這樣將來再需要調(diào)整這些參考值時,就不再需要修改程序,只需要修改相關(guān)的參數(shù)就可以了。不過當上下限范圍發(fā)生變化或需要更多的報警級別時,修改相應(yīng)的程序結(jié)構(gòu)將變得非常復(fù)雜,更何況在設(shè)備監(jiān)控中需要采集的數(shù)據(jù)類型種類眾多,對于程序開發(fā)和后期維護是非常不利的。在這樣的背景下,通過表達式編譯方式的程序開發(fā)結(jié)構(gòu)被提出。

        通過對眾多參數(shù)策略的羅列與比對,我們對報警策略表達式的抽象結(jié)構(gòu)做了以下幾點的總結(jié):

        ⊙ 參考值的上下限范圍,上下范圍可能相同或不同,極限情況下范圍為0。

        ⊙ 周期內(nèi)的持續(xù)變化,可能是連續(xù)上升、下降,極端情況下可能是不變化。

        ⊙ 區(qū)分報警等級,也就是計算出數(shù)值,由數(shù)值對應(yīng)報警的形式(顏色、聲音和操作)。

        3 表達式編譯的算法

        表達式編譯算法的目的:能夠理解表達式的意圖,全面真實的反應(yīng)表達式結(jié)構(gòu),能對每一個范疇內(nèi)的運算符進行運算,最終產(chǎn)生正確的結(jié)果,并將結(jié)果以數(shù)值形式展現(xiàn)出來。

        首先,表達式是由數(shù)字、算符、數(shù)字分組符號(括號)、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合。也就是說,表達式能夠被一般人理解的可見算式。

        如 :((@+2)<$)?l1 :l0 ;

        表達式的含義為:當前值+2小于參考值時返回長整形1否則返回長整形0;表達式運算符的關(guān)鍵字如表1中定義。

        表1

        運算符優(yōu)先級定義如表2。

        表2

        數(shù)據(jù)類型定義如表3。

        表3

        4 分析表達式的過程

        我們就以((@+2)<$)?1l:0l;為例對表達式的轉(zhuǎn)換與計算做簡單的算法介紹:

        (1)以下每個步驟,逐一處理每個字符。

        (2)首先創(chuàng)建一個根表達式R。

        (3)當讀到第1個左括號,創(chuàng)建表達式E0,將”(”寫入左目,連接到根結(jié)構(gòu)R的左目之下。

        (4)讀到第2個左括號,再創(chuàng)建表達式E1,將”(”寫入左目,連接到表達式E0的左目之下。

        (5)讀到 @,因為是變量,再次創(chuàng)建樹狀表達式E2,將”@”寫入左目,連接到E1左目之下。

        (6)讀到+,因為是運算符,將直接寫入E2的操作符中。

        (7)讀到2,因為是常數(shù),將直接寫入E2的右目,E2表達式完成,回溯到E1。

        (8)讀到),表示掛號完整,等待后續(xù)。

        (9)讀到<,因為是運算符,將直接寫入表達式E1的操作符中。

        (10)讀到$,將直接寫入表達式E1右目,回溯到表達式E0。

        (11)讀到?,因為是運算符,直接寫入操作符中。

        (12)讀到1l,表示輸出數(shù)據(jù)類型為長整形,寫入右目。

        (13)讀到,表示確定操作符為條件語句,等待第三目。

        (14)讀到0l,表示輸出數(shù)據(jù)類型為長整形,寫入第三目。

        (15)讀到;表示表達式結(jié)束,回溯到R。

        (16)退出表達式構(gòu)造。

        產(chǎn)生的表達式樹狀結(jié)構(gòu)如圖1所示。

        圖1

        對產(chǎn)生的樹狀結(jié)構(gòu)進行計算:

        (1)得到R。

        (2)獲取E0左目。

        (3)獲取E1左目。

        (4)獲取E2左目@與E2右目相加,得到結(jié)果@1回溯到E1。

        (5)將@1與$做比對,獲取結(jié)果TF,回溯到E0。

        (6)如果TF=T,獲取結(jié)果1,否則獲取結(jié)果0,回溯到R。

        (7)由R產(chǎn)生結(jié)果輸出。

        對于每一種輸出的值,只要在數(shù)據(jù)庫中對該參數(shù)做好相應(yīng)的定義,如:字體顯示顏色、報警的聲音、操作行為等,就可以從展現(xiàn)角度視為不同的報警級別。如圖2所示。

        圖2

        5 結(jié)束語

        修改程序構(gòu)架的時候擔心的運行效率問題并沒有成為瓶頸,解釋程序?qū)Γǎˊ+2)<$)?1l:0l;這樣的表達式在普通PC上進行10億次的運算消耗的時間小于1秒。表達式解釋程序在應(yīng)用場景中可滿足日常的設(shè)備監(jiān)控的需要,并已在多個項目中廣泛使用。真正做到無需修改程序就可滿足參數(shù)添加和不同種類的報警策略的修改與設(shè)定。

        [1] (美)阿霍(Aho,A,V)等著.李建中等譯.編譯原理.北京:機械工業(yè)出版社.

        猜你喜歡
        運算符數(shù)據(jù)類型參考值
        老祖?zhèn)魇诨具\算符
        科學24小時(2021年10期)2021-10-09 23:09:37
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        中國健康成年人甘油三酯參考值的空間變異特征
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        妊娠婦女甲狀腺功能血清指標參考值的建立
        上海地區(qū)胃蛋白酶原參考值的建立及臨床應(yīng)用
        C++運算符重載剖析
        價值工程(2014年17期)2014-04-16 03:29:20
        蘭州地區(qū)健康人群tPSA、fPSA以及fPSA/tPSA參考值范圍的建立
        表達式求值及符號推導(dǎo)
        C++中運算符的重載應(yīng)用
        av免费观看网站大全| 女人体免费一区二区| 国产三级国产精品三级在专区| 视频一区视频二区自拍偷拍 | 国产一级黄色性生活片| 日本男人精品一区二区| 性高朝大尺度少妇大屁股| 亚洲黄视频| 日韩精品人妻少妇一区二区| 国产av久久在线观看| 岳毛多又紧做起爽| 手机看片1024精品国产| 中文字幕中乱码一区无线精品 | av大片在线无码免费| 亚洲最大av免费观看| 日本免费一二三区在线| 免费va国产高清大片在线| 中文亚洲日韩欧美| 亚州韩国日本区一区二区片| 精品日韩一级免费视频| 亚洲av无码一区二区三区人妖 | 美丽的熟妇中文字幕| 久久成人永久免费播放| av国产免费在线播放| 久久国产成人精品国产成人亚洲| 日韩精品无码一区二区中文字幕| 国产精品乱子伦一区二区三区| av在线不卡一区二区| 高潮潮喷奶水飞溅视频无码| 97无码人妻Va一区二区三区| 精品一区二区三区不老少妇| 国产精品女直播一区二区| 福利体验试看120秒| 不卡a v无码在线| 国产午夜免费啪视频观看| 精品久久久久久成人av| 国产一毛片| 美女性色av一区二区三区| 久久精品国产99国产精品亚洲| 成人免费视频在线观看| 日本福利视频免费久久久|