• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于數(shù)據(jù)分類的循環(huán)不變式自動生成

    2023-02-17 01:54:02王承毅
    計算機應用與軟件 2023年1期
    關鍵詞:程序方法

    路 紅 王承毅 黃 皓

    1(南京理工大學紫金學院 江蘇 南京 210003) 2(南京大學計算機科學與技術系 江蘇 南京 210023)

    0 引 言

    軟件作為當今信息化社會的重要基礎設施,已廣泛應用于能源、交通、通信、金融和國防等安全攸關領域中[1]。然而,隨著軟件集成程度的提高和軟件系統(tǒng)結(jié)構(gòu)的日益復雜,各類軟件的高可信性越來越不能保證。軟件驗證以邏輯和數(shù)學為基礎,支持軟件進行嚴格的形式化規(guī)約和驗證,是確保軟件可信性的一種有效措施[2-3]。軟件驗證的目標是證明程序在任何執(zhí)行路徑下均滿足一定的形式化規(guī)約,即程序在確定的條件下執(zhí)行結(jié)束后便可滿足一定的要求。軟件驗證的一般步驟是針對待驗證的程序撰寫形式化規(guī)約(如前置條件、后置條件和循環(huán)不變式),然后利用自動驗證工具或交互式定理證明器驗證給定程序是否滿足所撰寫的形式化規(guī)約[4-5]。為了提高驗證效率、簡化驗證難度,出現(xiàn)了Z3[6]、Danfy[7]和Why3[8]等自動化驗證工具。運用這類自動化驗證工具對代碼量較少的程序進行驗證,無須驗證者撰寫大量證明腳本,僅須按照自動化驗證工具的規(guī)范撰寫待驗證程序的形式化規(guī)約,即可快速得到程序是否正確的驗證結(jié)果。然而,為程序提供合適的形式化規(guī)約,尤其是循環(huán)不變式,需要驗證者依據(jù)對程序的正確理解進行手工撰寫,這對于程序驗證者來說是一項任務繁重的工作且容易出現(xiàn)錯誤。因此,研究循環(huán)不變式的自動生成方法,減少人工撰寫程序形式化規(guī)約的工作量以及因人工撰寫形式化規(guī)約導致的驗證錯誤問題,已成為軟件驗證研究領域關注的一個重要問題[9]。

    1 相關工作及貢獻

    近年來,已有一些研究致力于循環(huán)不變式的自動生成方法研究。文獻[10-12]運用參數(shù)模板將循環(huán)不變式設置為一個參數(shù)模板,然后利用前置條件和后置條件進行約束求解。文獻[13-17]利用抽象解釋方法構(gòu)造多項式循環(huán)不變式,在語義等式基礎上進行多次不動點迭代計算,從而生成循環(huán)不變式。這些構(gòu)造循環(huán)不變式的方法均受限于所設定的模板。文獻[18]使用了“GUSESS AND CHECK”方法,將生成循環(huán)不變式的過程分為GUSESS和CHECK兩個階段。其中,GUSESS階段主要生成候選不變式,CHECK階段主要驗證GUSESS階段所生成的候選不變式是否正確。若不正確則繼續(xù)迭代執(zhí)行GUSESS和CHECK兩個階段的步驟,直到生成一個正確的循環(huán)不變式為止。文獻[19]運用游戲和眾包策略將生成候選不變式的過程交給網(wǎng)絡游戲玩家來完成。文獻[20]提出了一種基于數(shù)據(jù)分類生成候選不變式的方法,但不支持具有分支條件的循環(huán)語句生成循環(huán)不變式。文獻[21]提出的不變式生成方法雖然解決了具有分支條件的循環(huán)語句的循環(huán)不變式生成問題,但研究的是針對抽象程序進行不變式的生成方法。

    本文提出了一種基于數(shù)據(jù)分類的方法實現(xiàn)面向可運行的C程序自動生成循環(huán)不變式。本文的主要貢獻在于:

    (1) 設計了一種自動生成可執(zhí)行C程序后置條件的算法,并構(gòu)造相應的Hoare三元組,作為自動生成候選循環(huán)不變式的輸入。

    (2) 所提出的基于KSVM的自動循環(huán)不變式生成方法,支持生成包含析取和合取這兩種謂詞邏輯關系的、多項式不等式形式的循環(huán)不變式。

    (3) 對于分支循環(huán)程序,首先通過路徑敏感分析將其劃分成多條執(zhí)行路徑,然后針對每條執(zhí)行路徑分別使用KSVM分別生成候選不變式,最后使用SMT求解器檢查其正確性,從而得到具有分支條件的循環(huán)程序的循環(huán)不變式。

    (4) 所提出的方法在31個基準測試程序上進行評估和比較。實驗結(jié)果表明,本文所提出的方法能夠為最多的循環(huán)程序生成有效的循環(huán)不變式。

    2 問題定義與方法概覽

    2.1 問題定義

    為了清晰闡述本文所需解決的問題,我們對本文中所使用的符號進行界定。符號C表示循環(huán)條件,符號B表示循環(huán)體,符號V={v1,v2,…,vn}表示與循環(huán)語句相關的變量集合。符號Bodyi(v)={v1→xi,v2→yi,…,vn→mi}表示循環(huán)程序執(zhí)行第i次循環(huán)后V中各個變量的值。符號P表示循環(huán)語句的前置條件,即在執(zhí)行某條程序語句前所需要滿足的公式集合。符號Q表示循環(huán)語句的后置條件,即在執(zhí)行某條語句后應該要滿足的公式集合。

    Loop_A和Loop_B是兩個可運行的C循環(huán)程序。其中,Loop_A的變量集合V={i,j,n},第2行的assume語句表示前置條件P,第7行的assert語句表示后置條件Q。Loop_B的變量集合V={x,y},第2行的assume語句表示前置條件P,第8行的assert語句表示后置條件Q。

    算法1循環(huán)程序Loop_A

    1: int loop_function (int i, int n){

    2: assume(i==0&&j==0);

    3: while (i

    4: i=i+1;

    5: j=j+1;

    6: }

    7: assert(i==n-1&&j==i);

    8: return j;

    9: }

    算法2循環(huán)程序Loop_B

    1: int loop_function (int x, int y) {

    2: assume(x>0||y>0);

    3: while (x+y<-2) {

    4: if (x>0)

    5: x=x+1;

    6: else

    7: y=y+1;

    8: }

    9: assert(x>=0||y>=0);

    10: return x+y;

    11: }

    Hoare邏輯為程序驗證提供了一套公理和規(guī)則[22]。在文獻[23]中,基于Hoare邏輯的循環(huán)語句驗證使用一種斷言來驗證程序所滿足的性質(zhì),該斷言即為循環(huán)不變式。

    定義1斷言I是循環(huán)語句的循環(huán)不變式,當且僅當其滿足以下3個條件:

    (1)P→I。

    (2)I∧C→Bodyi(v)∧I。

    (3)I∧C→Q。

    條件(1)表示循環(huán)語句的前置條件P可推導出斷言I,即斷言I在循環(huán)的入口點是成立的。條件(2)表示斷言I在循環(huán)體執(zhí)行前后均成立,即在循環(huán)體執(zhí)行之前的程序點、循環(huán)體執(zhí)行之后的程序點及循環(huán)語句的退出點均成立。條件(3)表示斷言I和循環(huán)語句的退出條件可推導出后置條件Q,即斷言I可用于后置條件的正確性驗證。條件(1)和條件(2)成立可保證斷言I是循環(huán)語句的循環(huán)不變式,條件(3)說明循環(huán)不變式I可證明循環(huán)語句執(zhí)行結(jié)束之后應滿足的性質(zhì)。

    從定義1可以看出,如果一個循環(huán)不變式I成立,則循環(huán)程序執(zhí)行前變量集合的取值V0和任意一次循環(huán)執(zhí)行后變量集合的取值Vi均使得I成立。否則,循環(huán)不變式I不成立。從另一個角度來看,假如已知數(shù)據(jù)集SV+使條件(1)、(2)、(3)均成立,而數(shù)據(jù)集SV-使條件(1)、(2)、(3)中的任意一個均不成立,那么循環(huán)不變式I將是SV+和SV-的分類器。基于上述發(fā)現(xiàn),本文使用核支持向量機(Kernel Support Vector Machines,KSVM)[24]求解該分類器,進而得到相應的循環(huán)不變式。

    2.2 方法概覽

    使用KSVM作為一種分類器來自動生成循環(huán)不變式的過程如圖1所示,整個過程共分為三個階段。第一個階段是預處理,目標是實現(xiàn)對程序中循環(huán)語句后置條件的自動生成,并將前置條件、循環(huán)語句和后置條件組成Hoare三元組(文件命名為*.cfg)。第二個階段是迭代生成候選不變式。首先,依據(jù)循環(huán)語句的前置條件隨機生成測試數(shù)據(jù),以這些測試數(shù)據(jù)作為循環(huán)變量的初始值運行循環(huán)語句,并收集循環(huán)語句執(zhí)行過程中循環(huán)變量的值,組成樣本數(shù)據(jù)集SV。對數(shù)據(jù)集SV,依據(jù)所生成的Hoare三元組判定SV中的每一個樣本數(shù)據(jù)s是否屬于循環(huán)不變式的范圍進行標注,然后使用KSVM對標注后的數(shù)據(jù)集SV進行分類,從而自動生成候選不變式。為了減少迭代次數(shù),在候選不變式的邊界線上選擇有限個樣本數(shù)據(jù)加入到SV中,訓練用于生成候選不變式的KSVM分類器,直到其不再發(fā)生變化為止。最后,運用SMT求解器驗證候選不變式是否存在不滿足Hoare邏輯的反例數(shù)據(jù)。若存在反例數(shù)據(jù),則將其加入到SV繼續(xù)進行下一次迭代,直到產(chǎn)生一個循環(huán)不變式為止。其中,數(shù)據(jù)集SV的收集有兩種方法:一種是依據(jù)每個變量的定義域隨機生成有限組變量的值。另一種是利用SMT求解器分別生成滿足前置條件P和不滿足前置條件P的變量值。第三個階段是驗證自動生成的候選循環(huán)不變式是否符合條件(1)、(2)和(3)中,輸出結(jié)果為有效循環(huán)不變式或無效循環(huán)不變式。

    圖1 基于數(shù)據(jù)分類的循環(huán)不變式自動生成過程

    3 后置條件的自動生成

    根據(jù)定義1,循環(huán)不變式與前置條件P、循環(huán)條件C、循環(huán)體B和循環(huán)語句的后置條件Q相關。后置條件Q是生成循環(huán)不變式的關鍵,本節(jié)將重點闡述后置條件Q的自動生成算法。文獻[25]依據(jù)循環(huán)條件C的特點,將循環(huán)語句的類型分成IVCondition和NIVCondition兩種。如果循環(huán)條件C所包含的每個循環(huán)控制變量都是可歸納的,則該條件屬于IVCondition類循環(huán)條件。否則,該條件屬于NIVCondition。本文所提出的自動后置條件生成算法是面向具有IVCondition類循環(huán)條件的循環(huán)程序。

    算法3描述的是循環(huán)語句后置條件的生成方法。第1步,依據(jù)循環(huán)的前置條件P、循環(huán)條件C和循環(huán)體B中所出現(xiàn)的變量構(gòu)造變量集合V。第2步,計算循環(huán)體B執(zhí)行一次循環(huán)后,變量集合V中各個變量的增量Δ(V)。假設程序執(zhí)行第i次循環(huán)后V的值為Vi,程序執(zhí)行第i+1次循環(huán)后V的值為Vi+1,則Δ(V)=Vi+1-Vi。第3步,使用邊界值分析法計算循環(huán)執(zhí)行次數(shù)k。假定給定的循環(huán)語句在開始執(zhí)行前循環(huán)變量的值滿足前置條件P和循環(huán)條件C,當執(zhí)行k次后程序終止,則表示該循環(huán)體B在執(zhí)行k次之后循環(huán)變量的值不滿足循環(huán)條件C。因此,在循環(huán)語句執(zhí)行k-1次后,V的值Vk-1滿足循環(huán)條件C,在執(zhí)行k次循環(huán)后,V的值Vk不滿足的循環(huán)條件,根據(jù)這兩個條件可計算出循環(huán)體B的執(zhí)行次數(shù)k。第4步,依據(jù)第2步和第3步計算的結(jié)果生成關于集合V中每個變量在循環(huán)體B執(zhí)行結(jié)束時的不等式表示形式。最后,對第4步得到的各個變量的值的表示形式進行簡化,即可得到后置條件Q。

    算法3循環(huán)語句后置條件的自動生成算法

    輸入 前置條件P,循環(huán)體B。

    輸出 后置條件Q。

    1.依據(jù)前置條件P,循環(huán)條件C和循環(huán)體B構(gòu)造變量集合V;

    2.根據(jù)循環(huán)體B執(zhí)行第i次循環(huán)和第i+1次循環(huán)后的V值的變化,計算循環(huán)增量Δ(V);

    3.使用邊界值分析法計算循環(huán)的迭代次數(shù)k;

    4.依據(jù)Δ(V)和k,對變量集合V中的每個變量計算循環(huán)執(zhí)行結(jié)束時的值(不等式形式的表示);

    5.依據(jù)前置條件P對第4步的不等式進行簡化并輸出后置條件Q。

    就循環(huán)程序Loop_A來說,其后置條件的自動生成步驟如下:首先,依據(jù)其前置條件P、循環(huán)條件C和循環(huán)體B所影響的變量,構(gòu)造變量集合V={i,j}。循環(huán)體B執(zhí)行1次后,變量i和j的增量分別為Δ(i)=1和Δ(j)=1;循環(huán)體B執(zhí)行k-1次后,變量的值分別為ik-1=i+k-1和jk-1=j+k-1;循環(huán)語句執(zhí)行k次后,變量的值分別為ik=i+k和jk=j+k。循環(huán)體B執(zhí)行k-1次后變量ik-1滿足循環(huán)條件i

    在現(xiàn)階段的初中語文課外閱讀教學中,為使教師的教學方法真正被學生接受和理解,教師可以采用階梯式閱讀教學方法,根據(jù)學生的學習情況和理解能力選取合適的讀本,逐步實現(xiàn)課外閱讀教學目標。學生在階梯式課外閱讀教學中,閱讀難度逐漸增強,給學生閱讀水平提供循序漸進的過程,有利于學生閱讀能力的發(fā)展和提高,是教師課外閱讀教學的有效方法。

    循環(huán)程序Loop_B后置條件的自動生成步驟如下:首先,依據(jù)前置條件P、循環(huán)條件C和循環(huán)體Q的變量,得到其變量集合V={x,y}。該程序的循環(huán)體有兩種執(zhí)行路徑,分別標記為pathi和pathj,pathi的循環(huán)條件為x+y<-2∧x>0,在該執(zhí)行路徑下執(zhí)行1次循環(huán)后變量x的增量為Δ(x)=1,執(zhí)行k次和k-1次后變量x的值分別為xk-1=x+k-1和xk=x+k。依據(jù)該執(zhí)行路徑的循環(huán)條件,簡化后可得k=-2-x-y。那么,xk=-y-2。最后,再利用前置條件P和Z3簡化,可得到該執(zhí)行路徑的后置條件Qi=(x>0)。同理,得到另外一種執(zhí)行路徑的后置條件Qj=y>0。整個循環(huán)程序Loop_B的后置條件Q為x>0‖y>0。

    Hoare三元組描述一段代碼在執(zhí)行后如何改變程序的狀態(tài),其由前置條件P,后置條件Q和程序組成。在生成循環(huán)的后置條件Q之后,循環(huán)語句的Hoare三元組可快速構(gòu)造出。Loop_A和Loop_B的Hoare三元組如圖2所示。在圖2中,第1行表示循環(huán)語句的變量集合V,第2行表示循環(huán)執(zhí)行前變量的初值,第3行表示循環(huán)的前置條件P,第4行表示循環(huán)條件C,第5行表示循環(huán)體B,第6行表示后置條件Q。

    圖2 循環(huán)語句的Hoare三元組

    4 循環(huán)不變式的自動生成與驗證

    算法4是提出的基于數(shù)據(jù)分類的循環(huán)不變式自動生成方法。算法4以第3節(jié)所生成的Hoare三元組作為輸入,執(zhí)行后輸出所得到的循環(huán)不變式I。

    算法4循環(huán)不變式的自動生成算法

    輸入 Hoare三元組,time_limit=600 s。

    輸出 循環(huán)不變式I。

    1. 依據(jù)前置條件P隨機生成測試數(shù)據(jù),得到數(shù)據(jù)集SV;

    //當前時間

    3.Whiletime_limit>=0do{

    4. 以數(shù)據(jù)集SV作為測試數(shù)據(jù),運行循環(huán)語句并記錄循環(huán)變量值,將其加入到數(shù)據(jù)集SV;

    5. 標注數(shù)據(jù)集SV的變量值是否屬于循環(huán)不變式的范圍,將其分為CE(SV)、PE(SV)、NE(SV)和NP(SV)四類樣本;

    6. 使用KSVM方法對SV中的樣本進行分類,生成候選不變式CanInvr;

    7. 驗證CanInvr是否能夠存在反例使得條件(1)、(2)、(3)的取反成立,如果成立則將反例加入到數(shù)據(jù)集SV,繼續(xù)迭代下一次循環(huán),如果不存在反例,則I=CanInvr;

    8. time_limit=current_time-start_time;}

    9. 驗證循環(huán)不變式I是否有效。

    4.1 循環(huán)不變式的自動生成

    構(gòu)造合理的數(shù)據(jù)集是運用KSVM生成循環(huán)不變式的基礎。假設數(shù)據(jù)集為SV,且其應包含滿足循環(huán)不變式的數(shù)據(jù)集SV+和不滿足循環(huán)不變式的數(shù)據(jù)集SV-。算法4中的第1行主要是構(gòu)造循環(huán)執(zhí)行之前變量的初始值。首先,通過隨機方式生成滿足前置條件的數(shù)據(jù)集SP和不滿足前置條件的數(shù)據(jù)集SN,這兩種方式構(gòu)造測試數(shù)據(jù)集SV=SP∪SN。其次,以測試數(shù)據(jù)集SV作為循環(huán)體執(zhí)行的初始值,依據(jù)循環(huán)條件執(zhí)行有限次循環(huán)語句,并記錄每一次循環(huán)結(jié)束后循環(huán)變量的值,組成數(shù)據(jù)集SC,并將數(shù)據(jù)集SC加入到數(shù)據(jù)集SV中,即SV=SP∪SN∪SC(見算法4的第4行)。第三,依據(jù)文獻[21]提出劃分數(shù)據(jù)集SV中的一個數(shù)據(jù)s是否滿足循環(huán)不變式的方法,將SV劃分為CE(SV)、PE(SV)、NE(SV)和NP(SV)四種分類集(見算法4的第5行)。

    CE(SV)={s∈SV}|?s0,s′,s0∈P∧s0→

    s→s′∧s′∈C∧s′∈Q

    (1)

    CE(SV)包含數(shù)據(jù)集SV中不能通過Hoare邏輯驗證程序的數(shù)據(jù)。式(1)表示數(shù)據(jù)集SV中一個數(shù)據(jù)樣本s屬于集合CE(SV)的條件為:存在數(shù)據(jù)s0和s′,s0滿足循環(huán)前置條件P,執(zhí)行一次或多次循環(huán)體B后經(jīng)過中間某個狀態(tài)s得到s′,但數(shù)據(jù)s′不滿足后置條件Q。如果集合CE(SV)非空,則表示Hoare三元組不能被驗證。

    PE(SV)={s∈SV}|?s0,s∧′,s_0∈P∧s_0→

    s→s′∧s′∈C∧s′∈Q

    (2)

    PE(SV)包含數(shù)據(jù)集SV中屬于數(shù)據(jù)集SV+的樣本數(shù)據(jù),其一定滿足循環(huán)不變式。式(2)表示數(shù)據(jù)集SV中的數(shù)據(jù)樣本s屬于集合PE(SV)的條件為:存在數(shù)據(jù)s0和s′,s0滿足循環(huán)前置條件P,執(zhí)行一次或多次循環(huán)體語句B后得到s′,當循環(huán)結(jié)束時s′滿足后置條件Q。

    NE(SV)={s∈SV}|s0,s′,s0∈P∧s0→

    s→s′∧s′∈C∧s′∈Q

    (3)

    NE(SV)包含數(shù)據(jù)集SV中屬于數(shù)據(jù)集SV-的樣本數(shù)據(jù),其一定不滿足循環(huán)不變式。式(3)表示表示數(shù)據(jù)集SV中的一個數(shù)據(jù)樣本s屬于NE(SV)的條件為:存在數(shù)據(jù)點s0和s′,s0不滿足循環(huán)前置條件P時,執(zhí)行一次或多次循環(huán)體語句B后經(jīng)過中間數(shù)據(jù)s得到s′,循環(huán)終止時s′不滿足后置條件Q。

    NP(SV)=SV-CE(SV)-PE(SV)-NE(SV)

    (4)

    式中:NP(SV)表示SV中存在的、不能確定屬于上述三類樣本的數(shù)據(jù)集合。

    以循環(huán)程序Loop_A為例,假設為變量集合(i,j,n)隨機生成滿足前置條件和不滿足前置條件的數(shù)據(jù)集為(0,0,29)、(1,7,7)和(0,0,-8),以這3組數(shù)據(jù)作為初始變量值,執(zhí)行循環(huán)體后可得到變量的中間狀態(tài)值分別為<(0,0,29),(1,1,29),(2,2,29),…,(30,30,29)>、<(1,7,7)>和<(0,0,-8)>。然后,依據(jù)CE、PE、NE和NP的定義,對這些對數(shù)據(jù)進行標注,CE(SV)為空,PE(SV)為<(0,0,29),(1,1,29),(2,2,29),…,(30,30,29)>,NE(SV)為<(1,7,7)>和NP(SV)為<(0,0,-8)>。

    通過上述方法生成數(shù)據(jù)集SV并對其所屬類別進行標注。根據(jù)算法4中第6行,采用KSVM方法對數(shù)據(jù)集SV進行分類,可得到一個候選不變式CanInv,具體生成步驟如下:

    (1) 利用KSVM對數(shù)據(jù)集SV進行分類,生成一個分類器,將它作為初始候選不變式CanInv;

    (2) 在分類器邊界上選取樣本添加到SV中,通過多次迭代得到優(yōu)化后的候選不變式CanInv。

    通過步驟(1),基于隨機生成的測試數(shù)據(jù),采用KSVM生成一個線性不等式,即第一個候選不變式。該候選不變式是由有限個隨機樣本分類得到,其不能保證對所有可能的測試數(shù)據(jù)都能準確分類。因此,得到一個初始候選不變式CanInv后,通過步驟(2),在候選不變式的分類邊界上選擇兩個樣本數(shù)據(jù),將這兩個樣本數(shù)據(jù)加入到SV中后,再次使用KSVM生成新的候選不變式CanInv。當在候選不變式的分類邊界上選擇的數(shù)據(jù)樣本不能生成新的候選不變式CanInv時,生成候選不變式的過程便可結(jié)束,從而得到優(yōu)化后的候選不變式。選擇樣本的過程是先將得到的候選不變式轉(zhuǎn)換為等式,然后假定其中某一個變量為任意整數(shù),求其他變量的值。例如,Loop_A的初始候選不變式為342-7×i+8×n≥0,其分邊界為等式342-7×i+8×n=0。假定n=1,從而求得i=60,得到變量集合(n,i)的一個選擇樣本數(shù)據(jù)為(1,60)。

    此外,為了生成合取式的循環(huán)不變式,每次在集合NE(SV)中選擇一個數(shù)據(jù)樣本s,使用KSVM將數(shù)據(jù)s和集合PE(SV)中的數(shù)據(jù)進行分類得到一個分類器,迭代有限次這個過程后,直到NE(SV)為空,最后將每個分類器按照合取式關系生成候選不變式CanInv[22]。例如,采用這種方法,可生成Loop_A的候選循環(huán)不變式(78-n≥0)∧(1-i+j≥0)∧(47-i≥0)∧(i-j≥0)。

    對于帶分支條件的循環(huán),為其生成循環(huán)不變式的基本方法是:首先,按照路徑分析方法將循環(huán)分成多條執(zhí)行路徑;然后,對每條路徑按照上述步驟(1)和(2)中的方法,使用KSVM的方法生成候選不變式;最后,將針對不同執(zhí)行路徑求得的循環(huán)不變式進行綜合,從而得到各個循環(huán)不變式的析取式,即可分支循環(huán)程序的候選循環(huán)不變式。例如,Loop_B的循環(huán)體有兩個執(zhí)行路徑:pathi為(4,6,7)行,pathj為(4,8,9)行。pathi的候選循環(huán)不變式為x>0,pathj的候選循環(huán)不變式為y>0,則分支循環(huán)程序Loop_B的候選循環(huán)不變式為x>0‖y>0。

    4.2 循環(huán)不變式的驗證

    有效的循環(huán)不變式必須是能夠依據(jù)Hoare邏輯規(guī)則驗證循環(huán)。而4.1節(jié)得到的候選不變式是通過KSVM分類測試樣本數(shù)據(jù)得到的不變式,不能確定其是否為有效循環(huán)不變式,故本節(jié)目標是驗證候選不變式的有效性,進而求得可驗證的循環(huán)不變式。

    P∧CanInvr

    (5)

    (SV(sv+)∧C,Body)∧CanInvr

    (6)

    CanInvr∧Q∧C

    (7)

    式(5)-式(7)分別是Hoare邏輯規(guī)則中循環(huán)不變式的取反,即CanInvr。如果一個候選循環(huán)不變式是有效的循環(huán)不變式的話,其必定不會使得式(5)-式(7)中任何一個條件成立。算法4中的第7行,則是通過SMT求解器(如Z3)驗證候選不變式是否滿足式(5)-式(7)中的任意一個,如果滿足,將會產(chǎn)生一個反例數(shù)據(jù),將該反例數(shù)據(jù)加入到數(shù)據(jù)集SV中,迭代調(diào)用KSVM算法訓練分類器,直到?jīng)]有反例為止。如果不滿足式(5)-式(7),則候選不變式為有效的循環(huán)不變式。

    使用Z3驗證Loop_A的候選不變式是否滿足式(5)-式(7)時,得到一組反例(0,0,-31)和(0,0,79),依次將兩個數(shù)據(jù)加入到SV后訓練分類器,得到優(yōu)化的循環(huán)不變式為i-j≥0。經(jīng)Z3驗證,i-j≥0為Loop_A的一個有效循環(huán)不變式。

    5 實驗分析

    為評估本文所提出的循環(huán)不變式自動生成方法,使用C++、KLEE[26]和Z3實現(xiàn)了一個原型系統(tǒng)。首先,使用C++實現(xiàn)了后置條件的自動生成。然后,使用約束求解器Z3簡化后置條件。其次,將自動生成的后置條件、前置條件以及循環(huán)語句構(gòu)造成Hoare三元組作為輸入,隨機生成測試數(shù)據(jù)集并利用Z3生成滿足前置條件的測試數(shù)據(jù),以這些測試數(shù)據(jù)作為程序變量的初始值,應用KLEE執(zhí)行循環(huán)語句并記錄每次循環(huán)體執(zhí)行后變量的值。最后,使用KSVM方法對這些中間數(shù)據(jù)進行分類得到候選不變式。最后,使用Z3驗證所生成的候選循環(huán)不變式是否為可驗證的循環(huán)不變式。

    SV-Comp[27]是由慕尼黑大學構(gòu)建并維護的形式化驗證方法的基準測試數(shù)據(jù)集,為評估形式化驗證技術提供了公平的基準測量程序。為驗證本文所提出的不變式自動生成方法,我們在SV-Comp2019提供的C測試程序庫中選擇了被已有的文獻[21,28-30]使用的31個測試程序進行實驗分析。每個測試程序由前置條件和循環(huán)語句組成,所選擇的測試程序不包含數(shù)組和嵌套循環(huán),且循環(huán)條件是可歸納的。為了評估本文所提出算法的有效性,將本文所提出的循環(huán)不變式自動生成方法與ZILU[21]、CPAChecker[28]、BLAST[29]和InvGen[30]這四種方法進行對比,實驗結(jié)果如表1所示。ZILU是一個采用數(shù)據(jù)分類生成循環(huán)不變式的工具,其以循環(huán)程序的Hoare三元組開始,運用SVM生成循環(huán)不變式。CPAChecker是一款基于抽象解釋的循環(huán)不變式的自動生成工具。BLAST是一款驗證C程序是否滿足指定安全屬性的自動驗證工具,其基于反例自動構(gòu)造循環(huán)不變式。InvGen是一種結(jié)合靜態(tài)分析和動態(tài)分析方法自動生成線性算術循環(huán)不變式的工具。

    表1 基于KSVM生成循環(huán)不變式的實驗結(jié)果

    續(xù)表1

    在表1中,T表示可生成有效的循環(huán)不變式,F(xiàn)表示不能生成有效的循環(huán)不變式。第1列表示測試用的C程序標識號,第2列是生成循環(huán)不變式所需要的樣本數(shù)據(jù)的個數(shù),第3列表示生成循環(huán)不變式所需要的平均迭代次數(shù),第4列表示使用本文所提出的方法是否能夠生成可驗證的循環(huán)不變式,后面4列是利用其他4種循環(huán)不變式生成方法可否為相應的測試程序生成可驗證的循環(huán)不變式。

    從表1可以看出,ZILU僅可成功為26個測試程序生成可驗證的循環(huán)不變式。CAPchecker、BLAST和InvGen分別可為28個測試程序生成可驗證的循環(huán)不變式。相比之下,本文提出的循環(huán)不變式自動生成方法可為所有31個測試程序生成候選不變式,僅有兩個候選不變式不能驗證通過,分別是lh8和lh23。同時,所生成的循環(huán)不變式中各個元素關系可以是線性的、析取的或合取的。由此可見,本文所提出的循環(huán)不變式生成方法可基于后置條件,采用KSVM分類方法自動生成有效的循環(huán)不變式。值得注意的是,本文所提出的方法在生成循環(huán)不變式的成本較低,生成一個循環(huán)不變式需要的平均測試樣本數(shù)約為46.1,平均循環(huán)迭代次數(shù)約為3.5。

    6 結(jié) 語

    本文提出了一種基于數(shù)據(jù)分類的循環(huán)不變式自動生成方法,通過隨機生成測試數(shù)據(jù)、在初始候選不變式的分類邊界選擇測試數(shù)據(jù)、KSVM分類等方法,可為可行C循環(huán)程序自動生成可驗證的循環(huán)不變式。實驗驗證與分析表明,本文所提出的循環(huán)不變式自動生成方法不僅能夠為較少的循環(huán)程序生成有效的循環(huán)不變式,而且生成成本較低。

    猜你喜歡
    程序方法
    學習方法
    試論我國未決羈押程序的立法完善
    人大建設(2019年12期)2019-05-21 02:55:44
    失能的信仰——走向衰亡的民事訴訟程序
    “程序猿”的生活什么樣
    英國與歐盟正式啟動“離婚”程序程序
    可能是方法不對
    用對方法才能瘦
    Coco薇(2016年2期)2016-03-22 02:42:52
    創(chuàng)衛(wèi)暗訪程序有待改進
    四大方法 教你不再“坐以待病”!
    Coco薇(2015年1期)2015-08-13 02:47:34
    賺錢方法
    免费播放大片免费观看视频在线观看| 日韩欧美精品免费久久| 国产国拍精品亚洲av在线观看| 亚洲国产欧美在线一区| 日韩av免费高清视频| 青青草视频在线视频观看| 亚洲欧美日韩卡通动漫| 免费观看的影片在线观看| 亚洲精品成人av观看孕妇| 亚洲av不卡在线观看| 亚洲国产成人一精品久久久| 久久精品久久久久久久性| 欧美成人精品欧美一级黄| 特大巨黑吊av在线直播| 91精品国产九色| 又爽又黄a免费视频| 一级爰片在线观看| 日韩成人伦理影院| 亚洲经典国产精华液单| 黑丝袜美女国产一区| 男女免费视频国产| 久久热精品热| 久久99蜜桃精品久久| 成人国产麻豆网| 国产一区亚洲一区在线观看| 欧美另类一区| 2018国产大陆天天弄谢| 麻豆国产97在线/欧美| 少妇裸体淫交视频免费看高清| 91精品国产国语对白视频| 亚洲欧美日韩东京热| 中国美白少妇内射xxxbb| 欧美变态另类bdsm刘玥| 欧美+日韩+精品| 精品国产露脸久久av麻豆| 蜜桃在线观看..| 成人国产麻豆网| 日韩不卡一区二区三区视频在线| 亚洲欧美成人综合另类久久久| 国产成人精品婷婷| 亚洲欧洲日产国产| 国产精品一区二区在线不卡| 国产在线免费精品| 国产有黄有色有爽视频| 我的老师免费观看完整版| 日韩av在线免费看完整版不卡| av在线观看视频网站免费| 少妇丰满av| 自拍偷自拍亚洲精品老妇| 国产成人freesex在线| 观看免费一级毛片| 啦啦啦啦在线视频资源| 99久久综合免费| 一边亲一边摸免费视频| 亚洲天堂av无毛| 成年美女黄网站色视频大全免费 | 尤物成人国产欧美一区二区三区| 夜夜骑夜夜射夜夜干| 亚洲伊人久久精品综合| 99视频精品全部免费 在线| 又黄又爽又刺激的免费视频.| 18禁裸乳无遮挡免费网站照片| 搡女人真爽免费视频火全软件| 亚洲色图av天堂| 精品亚洲乱码少妇综合久久| 婷婷色综合www| 男女边吃奶边做爰视频| 日本黄大片高清| 日韩国内少妇激情av| 女人久久www免费人成看片| h日本视频在线播放| 亚洲第一区二区三区不卡| freevideosex欧美| 少妇人妻 视频| 国产亚洲午夜精品一区二区久久| 天堂8中文在线网| 少妇猛男粗大的猛烈进出视频| 欧美xxxx黑人xx丫x性爽| 能在线免费看毛片的网站| 亚洲av免费高清在线观看| 亚洲欧美中文字幕日韩二区| 三级国产精品片| 国产乱人偷精品视频| 男女无遮挡免费网站观看| 99久久精品一区二区三区| 久久av网站| 伊人久久精品亚洲午夜| 亚洲电影在线观看av| 男的添女的下面高潮视频| 欧美日韩精品成人综合77777| 十分钟在线观看高清视频www | 亚洲国产高清在线一区二区三| 全区人妻精品视频| 中文天堂在线官网| 亚洲真实伦在线观看| 哪个播放器可以免费观看大片| 草草在线视频免费看| 大码成人一级视频| 大片电影免费在线观看免费| 精品久久久久久久久av| 少妇裸体淫交视频免费看高清| 中文字幕精品免费在线观看视频 | 新久久久久国产一级毛片| 老师上课跳d突然被开到最大视频| 欧美一区二区亚洲| 国产乱人视频| 亚洲综合精品二区| 久久毛片免费看一区二区三区| 高清视频免费观看一区二区| 国产探花极品一区二区| 免费av不卡在线播放| 久久久欧美国产精品| 极品少妇高潮喷水抽搐| 精品99又大又爽又粗少妇毛片| 欧美丝袜亚洲另类| 卡戴珊不雅视频在线播放| 亚洲欧洲日产国产| 中文字幕av成人在线电影| 亚洲人成网站在线播| 男女边吃奶边做爰视频| 建设人人有责人人尽责人人享有的 | 干丝袜人妻中文字幕| 在线观看国产h片| 亚洲av成人精品一二三区| 黄色怎么调成土黄色| 一个人看视频在线观看www免费| 国产精品国产三级国产av玫瑰| 乱码一卡2卡4卡精品| 高清午夜精品一区二区三区| 丰满少妇做爰视频| 大话2 男鬼变身卡| 久久久久久久亚洲中文字幕| 精品99又大又爽又粗少妇毛片| 精品人妻熟女av久视频| 王馨瑶露胸无遮挡在线观看| 成人18禁高潮啪啪吃奶动态图 | 美女福利国产在线 | 777米奇影视久久| 国产精品秋霞免费鲁丝片| 深夜a级毛片| 午夜日本视频在线| 男女免费视频国产| 亚洲成色77777| 国产精品一区二区三区四区免费观看| 久久精品熟女亚洲av麻豆精品| 涩涩av久久男人的天堂| 九九爱精品视频在线观看| 国产91av在线免费观看| 秋霞在线观看毛片| 国产中年淑女户外野战色| 亚洲精品日本国产第一区| av卡一久久| 亚洲高清免费不卡视频| 少妇猛男粗大的猛烈进出视频| 91久久精品国产一区二区三区| 久久久久视频综合| 少妇人妻久久综合中文| 一区二区av电影网| 亚洲一级一片aⅴ在线观看| 99热国产这里只有精品6| 少妇被粗大猛烈的视频| 日本色播在线视频| 男女边摸边吃奶| 1000部很黄的大片| 欧美xxⅹ黑人| 插逼视频在线观看| 国产成人freesex在线| 亚洲无线观看免费| 97超碰精品成人国产| 欧美极品一区二区三区四区| 99热6这里只有精品| 久久综合国产亚洲精品| 少妇人妻 视频| 777米奇影视久久| 18禁裸乳无遮挡动漫免费视频| 日本与韩国留学比较| 亚洲精品视频女| 亚洲第一区二区三区不卡| 麻豆成人av视频| 日日啪夜夜爽| 国产色爽女视频免费观看| 久久国产精品男人的天堂亚洲 | 哪个播放器可以免费观看大片| 久久鲁丝午夜福利片| 黄色配什么色好看| .国产精品久久| 亚洲中文av在线| 免费看光身美女| 久久亚洲国产成人精品v| 尾随美女入室| 如何舔出高潮| 亚洲精品中文字幕在线视频 | 黑丝袜美女国产一区| 色网站视频免费| 免费观看av网站的网址| 国产免费一级a男人的天堂| 三级国产精品欧美在线观看| 我的老师免费观看完整版| 国产永久视频网站| 国产精品成人在线| 汤姆久久久久久久影院中文字幕| 汤姆久久久久久久影院中文字幕| 高清黄色对白视频在线免费看 | 你懂的网址亚洲精品在线观看| 九九在线视频观看精品| .国产精品久久| 91久久精品电影网| 午夜福利在线在线| 国内揄拍国产精品人妻在线| 国产精品99久久99久久久不卡 | 欧美激情极品国产一区二区三区 | 青春草视频在线免费观看| 极品教师在线视频| 免费黄网站久久成人精品| 在线亚洲精品国产二区图片欧美 | 国产一区二区三区综合在线观看 | 免费黄网站久久成人精品| 亚洲不卡免费看| 久久国产精品男人的天堂亚洲 | 在线亚洲精品国产二区图片欧美 | 日本与韩国留学比较| 精品久久久久久久久亚洲| 2022亚洲国产成人精品| 这个男人来自地球电影免费观看 | 久久精品国产亚洲av涩爱| 亚洲av在线观看美女高潮| 免费人成在线观看视频色| 赤兔流量卡办理| 91精品一卡2卡3卡4卡| 精品酒店卫生间| 欧美一级a爱片免费观看看| 久久久久久久久久久丰满| 精品亚洲乱码少妇综合久久| 日韩欧美一区视频在线观看 | 丝袜脚勾引网站| 王馨瑶露胸无遮挡在线观看| 久久6这里有精品| av卡一久久| 久久人人爽人人片av| 欧美日韩亚洲高清精品| 伊人久久国产一区二区| 老女人水多毛片| 91精品一卡2卡3卡4卡| 久久精品国产亚洲av涩爱| h日本视频在线播放| 免费观看在线日韩| 国产乱人视频| 日本av免费视频播放| 日本wwww免费看| 在线观看国产h片| 久久99热这里只频精品6学生| 亚州av有码| 一区二区三区四区激情视频| av卡一久久| 亚洲精品日本国产第一区| 欧美丝袜亚洲另类| 久热久热在线精品观看| 夜夜爽夜夜爽视频| 日韩,欧美,国产一区二区三区| 精品国产露脸久久av麻豆| 亚洲美女黄色视频免费看| 26uuu在线亚洲综合色| 国产一区亚洲一区在线观看| 综合色丁香网| 国语对白做爰xxxⅹ性视频网站| 女性被躁到高潮视频| a级毛色黄片| 伊人久久国产一区二区| 久久久欧美国产精品| .国产精品久久| 亚洲精品视频女| 少妇被粗大猛烈的视频| 啦啦啦在线观看免费高清www| 深爱激情五月婷婷| 久久 成人 亚洲| 久久久久网色| 高清毛片免费看| 久久精品国产亚洲av涩爱| 成人高潮视频无遮挡免费网站| 国产高清不卡午夜福利| av福利片在线观看| 国产免费一级a男人的天堂| 日韩伦理黄色片| 青青草视频在线视频观看| 久久国内精品自在自线图片| 亚洲,一卡二卡三卡| 精品一区二区三区视频在线| 久久久久久久大尺度免费视频| 在线精品无人区一区二区三 | 国产一区二区在线观看日韩| www.色视频.com| 国产精品爽爽va在线观看网站| 毛片女人毛片| 一级黄片播放器| 一个人免费看片子| 亚洲经典国产精华液单| 午夜福利高清视频| 精品国产乱码久久久久久小说| 国产精品免费大片| 一级毛片我不卡| 亚洲va在线va天堂va国产| 国产精品99久久99久久久不卡 | 一二三四中文在线观看免费高清| 嫩草影院入口| 水蜜桃什么品种好| 亚洲av在线观看美女高潮| 色5月婷婷丁香| 亚洲欧美一区二区三区黑人 | av不卡在线播放| 国语对白做爰xxxⅹ性视频网站| 欧美丝袜亚洲另类| 欧美一级a爱片免费观看看| 日韩,欧美,国产一区二区三区| 日本黄大片高清| 亚洲伊人久久精品综合| 午夜免费鲁丝| 在线免费观看不下载黄p国产| 国产 一区 欧美 日韩| 国产伦理片在线播放av一区| 亚洲激情五月婷婷啪啪| 色吧在线观看| av卡一久久| 亚洲av不卡在线观看| 日韩电影二区| 亚洲第一区二区三区不卡| 国产精品av视频在线免费观看| 日韩三级伦理在线观看| 午夜激情久久久久久久| 狂野欧美激情性xxxx在线观看| 深爱激情五月婷婷| 春色校园在线视频观看| 国产一级毛片在线| 精品久久久噜噜| 国产免费福利视频在线观看| 男女下面进入的视频免费午夜| 亚洲国产欧美人成| 亚洲综合精品二区| 性色av一级| 亚洲av中文字字幕乱码综合| 最近中文字幕2019免费版| 22中文网久久字幕| 一本—道久久a久久精品蜜桃钙片| 天美传媒精品一区二区| 少妇熟女欧美另类| 精品一区二区三卡| 精品熟女少妇av免费看| 久久99热这里只有精品18| 国产高清有码在线观看视频| 少妇熟女欧美另类| 国产成人午夜福利电影在线观看| 99视频精品全部免费 在线| 婷婷色麻豆天堂久久| 亚洲av男天堂| 国产男女内射视频| 97热精品久久久久久| 免费黄网站久久成人精品| www.av在线官网国产| 精华霜和精华液先用哪个| 国产精品欧美亚洲77777| 一本一本综合久久| 亚洲av在线观看美女高潮| 老司机影院毛片| 欧美日韩视频精品一区| 欧美一区二区亚洲| 国产精品蜜桃在线观看| 高清午夜精品一区二区三区| 黑人高潮一二区| 插阴视频在线观看视频| 国产久久久一区二区三区| 成人高潮视频无遮挡免费网站| 国产 一区精品| 精品少妇久久久久久888优播| 亚洲精品成人av观看孕妇| 国产一区有黄有色的免费视频| 全区人妻精品视频| 久久久久久伊人网av| 毛片一级片免费看久久久久| 妹子高潮喷水视频| 欧美人与善性xxx| 国产精品成人在线| 成人影院久久| 国产成人aa在线观看| 国产成人午夜福利电影在线观看| 亚洲av国产av综合av卡| 在线观看国产h片| 狠狠精品人妻久久久久久综合| 大香蕉久久网| 啦啦啦在线观看免费高清www| 色视频www国产| 亚洲经典国产精华液单| 日韩大片免费观看网站| 一区二区三区乱码不卡18| 久久久久久久久久久丰满| 亚洲成人av在线免费| 美女国产视频在线观看| 日本欧美国产在线视频| 免费人成在线观看视频色| 1000部很黄的大片| 亚洲欧洲日产国产| 一区二区三区乱码不卡18| 国产 一区 欧美 日韩| 国产有黄有色有爽视频| 精品午夜福利在线看| av在线播放精品| 国产久久久一区二区三区| 免费观看av网站的网址| 一边亲一边摸免费视频| 少妇 在线观看| 亚洲,欧美,日韩| 亚洲精品久久久久久婷婷小说| 色哟哟·www| 国产精品99久久99久久久不卡 | a 毛片基地| 国产色爽女视频免费观看| 国产女主播在线喷水免费视频网站| 日本猛色少妇xxxxx猛交久久| av女优亚洲男人天堂| 午夜免费男女啪啪视频观看| 成人黄色视频免费在线看| 91久久精品国产一区二区成人| 亚洲国产精品国产精品| 亚洲第一区二区三区不卡| 少妇的逼好多水| 熟女人妻精品中文字幕| av视频免费观看在线观看| 中文欧美无线码| 色视频在线一区二区三区| 女的被弄到高潮叫床怎么办| 亚洲av二区三区四区| 日韩中文字幕视频在线看片 | 欧美高清成人免费视频www| 日韩欧美 国产精品| 一级毛片电影观看| 啦啦啦啦在线视频资源| 日韩,欧美,国产一区二区三区| 九九久久精品国产亚洲av麻豆| 我要看黄色一级片免费的| 成人综合一区亚洲| 精品人妻偷拍中文字幕| 免费大片18禁| 九九爱精品视频在线观看| 夜夜看夜夜爽夜夜摸| 色哟哟·www| 特大巨黑吊av在线直播| 亚洲国产高清在线一区二区三| 丰满乱子伦码专区| 中文字幕免费在线视频6| 国产免费一级a男人的天堂| 我要看日韩黄色一级片| 亚洲av综合色区一区| 国产精品久久久久久久电影| 日本猛色少妇xxxxx猛交久久| 久久久色成人| 国产人妻一区二区三区在| 成年人午夜在线观看视频| 小蜜桃在线观看免费完整版高清| 少妇人妻一区二区三区视频| 91精品伊人久久大香线蕉| 一级爰片在线观看| 在线观看免费日韩欧美大片 | 亚洲第一av免费看| 久久精品久久久久久噜噜老黄| 热re99久久精品国产66热6| 人体艺术视频欧美日本| 成人特级av手机在线观看| 国产精品伦人一区二区| 国产精品.久久久| 一级片'在线观看视频| 婷婷色av中文字幕| 久久国产精品大桥未久av | 婷婷色麻豆天堂久久| 卡戴珊不雅视频在线播放| 老女人水多毛片| 2022亚洲国产成人精品| 亚洲,一卡二卡三卡| 国产毛片在线视频| 成人影院久久| 午夜视频国产福利| 国产精品人妻久久久影院| 天堂俺去俺来也www色官网| 日本黄色日本黄色录像| 午夜激情久久久久久久| 99热这里只有精品一区| 欧美亚洲 丝袜 人妻 在线| 18禁裸乳无遮挡免费网站照片| 99国产精品免费福利视频| 日本猛色少妇xxxxx猛交久久| 亚洲国产精品国产精品| 身体一侧抽搐| 天美传媒精品一区二区| 嘟嘟电影网在线观看| 免费人成在线观看视频色| 亚洲成人av在线免费| 99热网站在线观看| av卡一久久| 成人综合一区亚洲| 亚洲精品,欧美精品| 51国产日韩欧美| 在线天堂最新版资源| 欧美精品国产亚洲| 日本黄色片子视频| 夜夜看夜夜爽夜夜摸| 黄色怎么调成土黄色| 美女中出高潮动态图| 99热国产这里只有精品6| 麻豆乱淫一区二区| 大话2 男鬼变身卡| 嫩草影院新地址| 欧美高清成人免费视频www| 黄片无遮挡物在线观看| 性色avwww在线观看| 国产毛片在线视频| 亚洲av男天堂| 天堂俺去俺来也www色官网| 夜夜看夜夜爽夜夜摸| 日韩成人av中文字幕在线观看| tube8黄色片| 免费高清在线观看视频在线观看| 亚洲欧美日韩卡通动漫| 欧美97在线视频| 又大又黄又爽视频免费| 国产探花极品一区二区| 七月丁香在线播放| 在线免费观看不下载黄p国产| 夫妻性生交免费视频一级片| 精品一区在线观看国产| av黄色大香蕉| 亚洲欧美日韩无卡精品| 国产精品久久久久久精品电影小说 | 国产成人aa在线观看| 黑丝袜美女国产一区| 亚洲国产精品一区三区| 又黄又爽又刺激的免费视频.| 亚洲成人中文字幕在线播放| 乱系列少妇在线播放| 国产黄片美女视频| 免费大片18禁| av专区在线播放| 久久久久视频综合| 久久精品国产鲁丝片午夜精品| 国产精品成人在线| 久久久久国产精品人妻一区二区| 永久网站在线| 久久午夜福利片| 国产欧美亚洲国产| 欧美一区二区亚洲| 日韩欧美一区视频在线观看 | 亚洲怡红院男人天堂| 人妻系列 视频| 欧美精品人与动牲交sv欧美| 亚洲va在线va天堂va国产| 91狼人影院| 国产国拍精品亚洲av在线观看| av黄色大香蕉| 一区二区av电影网| 亚洲国产成人一精品久久久| 一区二区三区精品91| 老司机影院成人| 性高湖久久久久久久久免费观看| 超碰av人人做人人爽久久| 欧美一级a爱片免费观看看| 亚洲av.av天堂| 中文字幕制服av| av免费观看日本| 亚洲欧美日韩另类电影网站 | 亚洲av中文av极速乱| 美女xxoo啪啪120秒动态图| 人人妻人人看人人澡| 一级片'在线观看视频| 99热这里只有是精品50| 亚洲欧洲国产日韩| 妹子高潮喷水视频| av在线观看视频网站免费| 最近2019中文字幕mv第一页| 欧美日韩综合久久久久久| 久久久久久久精品精品| 亚洲无线观看免费| 97在线视频观看| 成人美女网站在线观看视频| 十分钟在线观看高清视频www | 日韩强制内射视频| 联通29元200g的流量卡| 777米奇影视久久| 精品视频人人做人人爽| 色哟哟·www| 另类亚洲欧美激情| 男女国产视频网站| 80岁老熟妇乱子伦牲交| 五月玫瑰六月丁香| 亚洲人成网站高清观看| 免费不卡的大黄色大毛片视频在线观看| 成人二区视频| 国产精品偷伦视频观看了| 热99国产精品久久久久久7| 天堂中文最新版在线下载| 亚洲欧美清纯卡通| 精品国产露脸久久av麻豆| 国模一区二区三区四区视频| 国产成人freesex在线| 久久久久久久精品精品| 99国产精品免费福利视频| 欧美一区二区亚洲| 国产在线男女| 亚洲精品国产色婷婷电影| 久久婷婷青草| 亚洲国产欧美在线一区| 成人美女网站在线观看视频| 爱豆传媒免费全集在线观看| 久久精品国产亚洲av天美| 在线观看一区二区三区| 中文字幕制服av| 少妇丰满av| 丝瓜视频免费看黄片| 一区二区av电影网| 亚洲国产精品国产精品|