• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-159  評論-223  文章-30  trackbacks-0
            1. 數學基礎:兩者的共同點是都基于數據流值的半格和對組合運算封閉的傳遞函數,不同點是區域分析算法還要求傳遞函數是一個半格,不僅支持組合運算,而且支持交匯運算和閉包運算,交匯運算用于把有相同后繼的不同執行路徑組合起來,閉包運算用于環上(比如循環)執行零到多次的效果

            2. 流程:迭代算法由初始化和循環求不動解組成,以前向數據流為例,其中初始化包括初始化入口基本塊的out集合為合適值,其它基本塊的out集合為半格的頂元素;循環求不動解遍歷除入口外(因為入口的out不會變)的每個基本塊,計算其out集合,直至所有基本塊的out不再改變。區域分析算法由計算層次區域序列、構造區域傳遞函數和計算各區域入口值組成,計算層次區域序列自底向上,基本塊為葉子區域,自然循環分為循環體區域和循環區域,都是內部區域,不是自然循環的整個流圖為根區域;區域傳遞函數有2個,一是R區域入口到其直接子區域S的入口的數據流值傳遞,記作Fin(R,S),另一是R區域入口到其直接子區域出口基本塊B(可能有多個)出口處的數據流值傳遞,記作Fout(R,B),區域傳遞函數的計算自底向上,對于葉子區域,Fin是恒等函數,Fout和迭代算法的傳遞函數一樣,取決于具體數據流問題;對于更大的區域(非葉子區域),遍歷每個子區域,Fin由所有Fout(R,B)交匯而成,B為S在R中的前驅,若R為循環區域,則再求Fout的閉包,遍歷S的每個出口基本塊B,Fout由Fout(S,B)和Fin(R,S)組合而成。計算各區域入口值自頂向下,根區域的In值等于流圖入口的In值,其它區域S的In值等于Fin(R,S),R為父區域,所有Fin在前一環節已構造好

            3. 結果:對同一數據流問題比如到達定值,兩種算法求得的數據流值是一樣的。為什么區域分析算法是正確的?因為它實際是按照程序控制流來構造傳遞函數的,包含了所有可能執行路徑數據流值傳遞的效果,這相當于迭代算法求不動解的過程,所以最后只要一個流圖的入口值,就能算出各區域的入口值。為什么迭代算法是收斂的?因為半格是單調的且高度有窮。收斂速度取決于遍歷基本塊的順序,如果按基本塊深度優先排序(逆后序)遍歷,那么迭代輪數不超過流圖的深度(各條無環路徑后退邊的最大數)加2

            4. 區別:迭代算法用于可歸約流圖和不可歸約流圖,區域分析算法僅能用于可歸約流圖
            posted on 2023-09-06 23:18 春秋十二月 閱讀(80) 評論(0)  編輯 收藏 引用 所屬分類: Compiler
            99久久精品九九亚洲精品| 久久人人爽人人爽人人片AV麻豆| 99久久中文字幕| 97热久久免费频精品99| 99精品国产在热久久无毒不卡| 久久夜色精品国产亚洲| 99久久国产综合精品女同图片| 一本色道久久88—综合亚洲精品| 亚洲精品乱码久久久久久中文字幕| 久久久久久精品免费看SSS| 亚洲国产精品无码久久| 夜夜亚洲天天久久| 亚洲va国产va天堂va久久| 国产精品久久久亚洲| 久久综合狠狠综合久久97色| 久久久免费观成人影院| 99久久精品费精品国产一区二区| 亚洲综合精品香蕉久久网97| 久久这里只有精品18| 国产精品久久婷婷六月丁香| 88久久精品无码一区二区毛片| 国产情侣久久久久aⅴ免费| 久久精品国产免费观看三人同眠| 久久国产成人午夜aⅴ影院| AAA级久久久精品无码片| 国产V亚洲V天堂无码久久久| 久久精品国产亚洲αv忘忧草| 久久久久国产精品三级网| 91精品国产91久久久久久蜜臀| 波多野结衣中文字幕久久| 人人狠狠综合久久亚洲婷婷| 97久久精品午夜一区二区| 国产精品18久久久久久vr| 国产成人久久精品麻豆一区| 久久精品国产91久久麻豆自制| 99久久99久久精品国产片果冻| 国产999精品久久久久久| 亚洲精品国产综合久久一线| 久久受www免费人成_看片中文| 久久超乳爆乳中文字幕| 深夜久久AAAAA级毛片免费看|