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

    基于上下文的智能化代碼復用推薦

    2021-01-21 04:29:56彭鑫陳馳林云
    大數(shù)據(jù) 2021年1期
    關鍵詞:開發(fā)人員語句代碼

    彭鑫,陳馳,林云

    1. 復旦大學計算機科學技術學院,上海 200438;2. 上海市數(shù)據(jù)科學重點實驗室,上海 200438;3. 新加坡國立大學計算機學院,新加坡 117418

    1 引言

    各種形式的代碼復用一直是軟件開發(fā)人員廣泛使用的一種高效的輔助開發(fā)手段,復用的對象包括相似功能模塊、代碼片段以及應用編程接口(application programming interface,API)等不同粒度的代碼單元。在傳統(tǒng)的代碼復用方式中,開發(fā)人員需要利用互聯(lián)網(wǎng)搜索引擎或企業(yè)代碼庫搜索等手段獲取特定領域的或與領域無關的可復用代碼單元,同時查找樣例代碼和文本解釋等幫助信息,在此基礎上選擇代碼單元,并完成修改和集成。這種代碼復用方式雖然有效,但依賴開發(fā)人員的經(jīng)驗,同時需要進行大量的信息查找和確認,因此復用效率不高,而且容易在代碼中引入缺陷。

    開源和企業(yè)代碼庫以及軟件技術文檔、軟件開發(fā)問答等軟件開發(fā)資源的大量積累形成了代碼大數(shù)據(jù)。例如,代碼托管平臺GitHub上已經(jīng)聚集了超過2.7億個代碼倉庫,軟件開發(fā)問答網(wǎng)站Stack Overflow上已經(jīng)積累了超過1 700萬個軟件開發(fā)問題。軟件開發(fā)過程中很多時候遇到的是重復性的開發(fā)問題,如通用功能實現(xiàn)、通用API及其使用模式,因此通過代碼大數(shù)據(jù)分析、挖掘和學習可以實現(xiàn)智能化的代碼復用推薦。對于軟件開發(fā)人員而言,最有效的方式是基于代碼上下文的智能化代碼復用推薦,即根據(jù)集成化開發(fā)環(huán)境(integrated development environment,IDE)中當前開發(fā)任務已經(jīng)完成的代碼等上下文信息,針對性地推薦可用的代碼單元,同時輔助開發(fā)人員進行定制化的代碼修改和集成。

    針對基于上下文的智能化代碼復用推薦,研究人員使用數(shù)據(jù)挖掘、統(tǒng)計模型、深度學習等各種技術手段開展了一系列研究和探索,包括基于上下文匹配的API使用模式推薦[1]、基于上下文概率模型的代碼補全[2]、基于上下文圖統(tǒng)計語言模型的API推薦[3]等。這些方法推薦的可復用代碼單元覆蓋了API使用模式、代碼片段、單個API和語句行等不同粒度,其有效性已經(jīng)在一定范圍內(nèi)得到了驗證。然而,現(xiàn)有的智能化代碼復用推薦還無法提供一種具有廣泛適用性以及能夠按需調(diào)整推薦粒度及內(nèi)容的系統(tǒng)性的智能輔助開發(fā)支持。

    一般而言,軟件開發(fā)人員的代碼復用對象包括特定領域的共性代碼單元以及與領域無關的通用代碼單元。前者的復用范圍局限在特定領域內(nèi),但與核心業(yè)務關系更密切,例如以代碼片段或功能模塊的形式出現(xiàn)的相似業(yè)務功能的代碼實現(xiàn)變體。后者的復用范圍更廣,但與核心業(yè)務關系較弱,如通用API及其使用模式、通用算法與功能實現(xiàn)等。不同類型的代碼復用對象需要采用不同的智能化方法進行分析和推薦。本文圍繞基于上下文的智能化代碼復用推薦這一主題,從基于模板挖掘的代碼復用推薦和基于深度學習的代碼復用推薦兩個方面介紹筆者的研究工作。其中,基于模板挖掘的代碼復用推薦支持代碼片段和功能模塊兩個層次的復用推薦,同時所需的相似代碼副本數(shù)量較少,適用于面向特定領域的共性代碼復用推薦?;谏疃葘W習的代碼復用推薦支持單行及多行API調(diào)用代碼的推薦,所需的訓練數(shù)據(jù)較多,適用于與領域無關的通用代碼復用推薦。在此基礎上,本文還將針對基于上下文的智能化代碼復用推薦的未來發(fā)展方向進行展望。

    2 基于模板挖掘的代碼復用推薦

    軟件開發(fā)人員經(jīng)常會實現(xiàn)相似或相同的功能,相應的實現(xiàn)代碼也是相似的。這種代碼片段級別的復用行為在開源和企業(yè)軟件開發(fā)中十分普遍。在這種代碼復用中,開發(fā)人員經(jīng)常需要對所復用的代碼進行定制化修改。此時,開發(fā)人員可能因為對代碼本身以及不同部分之間的邏輯關聯(lián)不夠了解而造成遺漏修改或錯誤修改,進而導致缺陷的產(chǎn)生。此外,在功能模塊級別上,開發(fā)人員可能會通過代碼復制粘貼實現(xiàn)更大粒度的復用,其中隱含著對設計結(jié)構(gòu)的復用。通過代碼片段和功能模塊兩個層次的模板抽取,可以實現(xiàn)相應的代碼復用推薦。

    2.1 代碼片段模板抽取與復用推薦

    針對代碼片段級別的復用,可以通過代碼克隆檢測發(fā)現(xiàn)當前所復用代碼片段在項目庫中的所有相似副本。這些相似副本被稱為克隆實例,它們構(gòu)成的集合被稱為克隆類。該方法的基本思想在于,項目庫中的每一個相似副本(克隆實例)都被視為一次基于代碼復制的復用的結(jié)果,而這些克隆實例之間的差異則被視為代碼復用過程中所做的修改。因此,開發(fā)人員通過代碼復制復用一個代碼片段時,可以找出所有與之相似的克隆實例,分析它們之間的差異,并從中抽取代碼模板以及其中蘊含的關聯(lián)關系用于復用推薦。

    該方法的基本過程如圖1所示[4]。在針對當前所復制代碼片段的克隆檢測結(jié)果的基礎上,利用多段代碼之間的差異比較技術來檢測這些克隆實例之間的差異[5],并將每一個差異轉(zhuǎn)化為一個代碼可變點。在此基礎上,該方法通過基于歷史代碼信息(曾在可變點處出現(xiàn)過的代碼)和上下文代碼的分析,挖掘每個可變點上的內(nèi)容選項以及相互之間的關聯(lián)關系,并在開發(fā)人員的代碼編輯過程中以交互式推薦的方式輔助實現(xiàn)代碼復用。當開發(fā)人員在可變點中選擇了某些代碼內(nèi)容選項或輸入新的代碼內(nèi)容時,該方法可以基于挖掘的關聯(lián)規(guī)則動態(tài)調(diào)整其他相關可變點上的代碼內(nèi)容選項及其推薦排序。

    基于該方法實現(xiàn)的Eclipse插件CCDeamon(code cloning deamon)如圖2所示。其中,代碼內(nèi)容上的方框表示所復制的代碼上經(jīng)過模板抽取后識別出的可變點,點擊后將顯示經(jīng)過排序的推薦選項列表。

    圖1 代碼片段模板抽取與復用推薦方法[4]

    圖2 CCDeamon工具插件[4]

    2.2 功能模塊模板抽取與復用推薦

    針對功能模塊級別的復用,可以從相似副本中抽取出相似功能的設計和實現(xiàn)模板,并支持開發(fā)人員基于模板進行定制化的功能實現(xiàn)。該方法將抽取的抽象設計以類圖形式保存為模板,在此基礎上,支持開發(fā)人員基于模板自動生成骨架代碼以及骨架內(nèi)的部分實現(xiàn)代碼[6]。

    該方法的基本過程如圖3所示,采用自底向上的聚合和抽象技術來完成代碼模板的抽取[6]。該方法首先從項目源代碼中逆向恢復出整個項目的靜態(tài)設計模型,其中包含整個項目中的類、接口、方法、屬性以及它們之間的關系。然后,該方法定義了模型內(nèi)程序元素(即類、接口、方法和屬性)的對應匹配方式,被匹配的程序元素被聚合成一個多重集。接著,該方法根據(jù)多重集間元素的關系(如繼承和調(diào)用關系等)將多個多重集進行拼接,并進一步對每個多重集內(nèi)部的程序元素進行抽象,形成模板程序元素;最后,該方法根據(jù)生成的模板支持開發(fā)人員通過定制生成新的應用程序骨架代碼以及骨架內(nèi)部代碼。

    圖3 功能模塊實現(xiàn)模板抽取與復用推薦方法[6]

    該技術已經(jīng)被實現(xiàn),稱為Eclipse插件MICoDe(mining implicit code design),如圖4所示。圖4右側(cè)的模板視圖列出了模板庫中所有抽取出的可復用模板,中間的模板編輯器支持開發(fā)人員對模板進行二次編輯。UML類圖可視化了一個模板中的類、接口、方法、屬性以及它們之間的關系(如繼承和調(diào)用關系等)。同時,工具底部的代碼差異視圖支持開發(fā)人員查看模板中某個元素(如方法)在項目中的多個實現(xiàn)示例,并高亮顯示出這些示例之間的差異。

    圖4 MICoDe工具示意圖[6]

    3 基于深度學習的代碼復用推薦

    由于深度學習在自然語言處理領域表現(xiàn)出的優(yōu)越性,其被遷移到代碼復用推薦領域。相對于模板挖掘這種顯式的方式,深度學習通過隱式的方式學習代碼的使用模式?;谏疃葘W習的代碼復用推薦方法分為訓練階段和預測階段。在訓練階段,基于深度學習的代碼復用推薦方法通常將代碼解析為某種代碼表示形式(如代碼序列表示、代碼樹結(jié)構(gòu)表示以及代碼圖結(jié)構(gòu)表示等),設計或應用符合該代碼表示形式的深度學習網(wǎng)絡(如長短期記憶(long short-term memory,LSTM)網(wǎng)絡、Tree-LSTM網(wǎng)絡以及門控圖神經(jīng)網(wǎng)絡(gated graph sequence neural network,GG-NN)等)進行學習和訓練。在預測階段,基于深度學習的代碼復用推薦方法應用訓練好的模型對給定的帶有窟窿(即待完成的部分)的不完整代碼進行預測。

    3.1 基于Tree-LSTM網(wǎng)絡的生成式API推薦

    基于傳統(tǒng)統(tǒng)計學習的API推薦方法[2,7-11]以及基于深度學習的API推薦方法[11-15]將代碼解析為代碼序列,并利用傳統(tǒng)統(tǒng)計模型(如N-Gram模型等)或深度學習模型(如LSTM網(wǎng)絡等)進行學習和訓練。然而,這些研究方法沒有考慮代碼的結(jié)構(gòu)信息(如控制流和數(shù)據(jù)流),不能有效地捕獲相隔較遠的代碼之間的關系,并且沒有實例化API中的參數(shù)。

    基于Tree-LSTM網(wǎng)絡的生成式API推薦方法DeepAPIRec如圖5所示[16]。在訓練階段,DeepAPIRec訓練了一個語句模型用于預測抽象API語句,并構(gòu)造了一個參數(shù)模型用于實例化抽象API語句中的參數(shù),從而形成實例化API語句。在預測階段,對于給定的帶有窟窿的程序,DeepAPIRec預測出實例化API語句供開發(fā)人員選擇。

    圖5 基于Tree-LSTM網(wǎng)絡的生成式API推薦方法DeepAPIRec[16]

    在語句模型訓練階段,DeepAPIRec將代碼解析為包含代碼控制流信息的代碼樹。代碼樹中的每一個結(jié)點表示抽象的API語句、變量聲明/賦值語句、控制結(jié)構(gòu)或代碼窟窿,邊表示它們之間的控制流關系。DeepAPIRec結(jié)合Tai K S等人[17]提出的Child-Sum Tree-LSTM網(wǎng)絡和N-ary Tree-LSTM網(wǎng)絡,作為深度學習網(wǎng)絡對代碼樹進行學習和訓練,從而有效地捕獲相隔較遠的代碼之間的關系以及代碼結(jié)構(gòu)信息的語義。

    在參數(shù)模型構(gòu)建階段,DeepAPIRec在代碼樹上加入了數(shù)據(jù)依賴分析,從而引入數(shù)據(jù)流邊,構(gòu)成加入數(shù)據(jù)依賴關系的代碼樹。DeepAPIRec通過統(tǒng)計存在數(shù)據(jù)依賴關系的代碼樹中兩個結(jié)點之間在相應路徑上的數(shù)據(jù)依賴次數(shù)來構(gòu)造參數(shù)模型。給定一個待預測的API結(jié)點及對應的加入數(shù)據(jù)依賴關系的代碼樹,參數(shù)模型計算每個結(jié)點在所有可以到達待預測API結(jié)點且長度大于2的路徑上與待預測API結(jié)點產(chǎn)生數(shù)據(jù)依賴的次數(shù),次數(shù)越高表示數(shù)據(jù)依賴概率越大,即該結(jié)點表示的變量越有可能成為預測的API中的參數(shù)。

    在代碼推薦階段,給定一段帶有窟窿的程序(如圖6所示),DeepAPIRec首先將其解析為代碼樹(如圖7所示),并輸入語句模型進行預測,得到抽象API語句;其次,DeepAPIRec將其解析為加入數(shù)據(jù)流的代碼樹(如圖8所示);最后,用抽象API語句結(jié)點替換hole結(jié)點,并通過參數(shù)模型進行參數(shù)實例化,以形成實例化的API語句供開發(fā)人員選擇。對于圖6的代碼示例,DeepAPIRec可以成功地推薦正確的API語句Signature signature = Signature.getInstance(signMode)。

    3.2 基于深度學習及代碼上下文結(jié)構(gòu)和文本信息的API推薦

    代碼包含代碼結(jié)構(gòu)信息和代碼文本信息兩種核心信息。代碼結(jié)構(gòu)信息(如控制流和數(shù)據(jù)流)反映代碼的程序邏輯特性,代碼文本信息(如方法名、變量名等)反映代碼在自然語言中的語義?,F(xiàn)有的API推薦方法[2,7-15,18]要么將代碼按照文本處理的方式處理為代碼序列,要么只考慮代碼的結(jié)構(gòu)信息,并將代碼解析為樹或者圖表示。這些API推薦方法僅獨立建模代碼結(jié)構(gòu)信息或代碼文本信息,沒有將代碼結(jié)構(gòu)信息和文本信息進行結(jié)合。此外,在考慮代碼結(jié)構(gòu)信息時應考慮代碼的全局語義(即將代碼看作一個完整的圖表示),而非像GraLan[3]那樣只考慮代碼的局部語義(即將代碼處理為子圖進行推薦)。如圖9所示,GraLan只考慮局部語義,因此GraLan無法成功地預測出正確的API。如果考慮全局語義,那么可以得知hole處的語義為“對一個String類型的變量進行某種處理,以獲取一個int類型的值”。然而,只考慮代碼結(jié)構(gòu)信息無法得到hole處的準確語義,這是因為無法確定需要對String類型的變量進行何種處理。如圖10所示,其代碼結(jié)構(gòu)信息與圖9中的代碼非常相似,但是hole處的語義與圖9中的代碼不一樣。如果結(jié)合代碼文本信息進行考慮,就可以得知圖9中hole處的語義為“計算字符串的Hash值”,而圖10中hole處的語義為“將字符串直接轉(zhuǎn)為整數(shù)”。因此筆者團隊提出一種名為APIRec-CST的基于深度學習及代碼上下文結(jié)構(gòu)和文本信息的API推薦方法[19]。

    圖6 利用Signature簽名加密的代碼示例

    圖7 代碼樹示例

    圖8 加入數(shù)據(jù)流的代碼樹示例

    APIRec-CST將代碼解析為API上下文圖,以反映代碼中的結(jié)構(gòu)信息。API上下文圖中的每個結(jié)點表示抽象API方法調(diào)用、成員變量訪問、變量聲明/賦值、控制結(jié)構(gòu)或代碼窟窿,邊表示它們之間的控制流或數(shù)據(jù)流關系。APIRec-CST將代碼文本信息(如方法名、參數(shù)名和變量名)提取為代碼Token詞袋,并通過分詞、詞形還原、去重等方式處理得到的代碼Token詞袋。對于得到的API上下文圖及代碼Token詞袋,APIRec-CST通過圖11所示的網(wǎng)絡進行聯(lián)合學習和訓練。其中,APIRec-CST通過API上下文圖網(wǎng)絡學習API上下文圖的全局語義,通過代碼Token網(wǎng)絡學習代碼文本信息語義,并通過聯(lián)合層結(jié)合代碼結(jié)構(gòu)信息和文本信息。

    對于一段給定的帶有窟窿的程序(如圖9、圖10所示),APIRec-CST將其解析為API上下文圖(如圖12所示)及代碼Token詞袋(compute、Hash、code、path、result、rd、br以及str),并分別輸入圖11所示的網(wǎng)絡中。最后,APIRec-CST能夠預測出正確的API推薦java.lang.String.HashCode()。

    圖9 計算文件內(nèi)容哈希值的代碼示例

    圖10 從文件獲取得分的代碼示例

    圖11 APIRec-CST的網(wǎng)絡模型結(jié)構(gòu)[19]

    4 未來展望

    各種智能化技術特別是深度學習技術的應用使得基于上下文的智能化代碼復用推薦成為可能。然而,由于軟件開發(fā)固有的復雜性和不確定性,在企業(yè)軟件開發(fā)中全面實現(xiàn)智能化代碼復用推薦還存在一系列技術挑戰(zhàn),主要包括:軟件需求和設計中蘊含的創(chuàng)造性和不確定性、各種軟件項目在業(yè)務和技術領域的多樣性和差異性、代碼及其他軟件開發(fā)資源的數(shù)據(jù)質(zhì)量問題[20]。

    基于上下文的智能化代碼復用推薦是一種輔助開發(fā)手段,需要與開發(fā)人員的主觀經(jīng)驗、思考和判斷能力相結(jié)合。另外,理想的智能化代碼復用推薦應當提供一種集成化、系統(tǒng)化的智能開發(fā)輔助,實現(xiàn)通過單一的入口和渠道滿足開發(fā)人員對不同粒度(如功能模塊、代碼片段、單個API或單行代碼等)以及不同形態(tài)(參考代碼、原理解釋、解決方案描述等)的可復用資源和信息的需要。因此,未來有效的智能化代碼復用推薦應當以一種人機協(xié)作的智能化助手的形式來實現(xiàn)。這種智能化助手隱藏在IDE之中,持續(xù)觀察開發(fā)人員的行為以及代碼上下文的變化,及時發(fā)現(xiàn)問題,并在需要的時候提供所需的各種幫助,例如推薦API或代碼片段、提供代碼說明并指導代碼修改、給出解決方案建議、回答開發(fā)人員問題等。智能化助手的工作方式應當類似于結(jié)對編程,能夠與軟件開發(fā)人員持續(xù)交互和協(xié)作。為此,這種智能化助手應當具有以下多個方面的能力[20]。

    ● 交互式澄清與解釋。以交互式的方式澄清開發(fā)人員的意圖,同時對給出的推薦提供原理解釋和說明。

    ● 逐步細化解決方案建議。按照開發(fā)人員的思維方式,由粗到細逐步推薦和細化代碼復用及問題解決方案,而不是一開始就陷入細節(jié)。

    ● 獲取和利用技術和業(yè)務背景知識。具備編程語言、API、領域模型等方面的技術和業(yè)務背景知識,以此來支持與開發(fā)人員的高效交互和復用推薦。

    ● 按需提供不同粒度和不同形式的解決方案。根據(jù)開發(fā)人員的意圖和代碼上下文,按需提供文本方案描述、問題解答、功能模塊、代碼片段、API模式、單個API、代碼行及參數(shù)等不同粒度和形式的解決方案。

    5 結(jié)束語

    以代碼為核心的軟件開發(fā)大數(shù)據(jù)的積累以及各種智能化分析技術的發(fā)展,使得智能化的代碼復用推薦成為可能。通過代碼模板挖掘以及代碼深度學習等不同的智能化分析技術,可以實現(xiàn)面向特定領域以及與領域無關的智能化代碼復用推薦。然而,現(xiàn)有的方法和工具大部分只對與領域無關的通用代碼單元較為有效,如通用API使用模式、常用算法實現(xiàn)等。支持特定領域代碼復用的代碼模板挖掘等方法的適應性和可組合性都十分有限。上述問題導致現(xiàn)有的方法和工具僅能在簡單的編碼任務上提供一些有限的智能化支持,無法提供全面、系統(tǒng)化的智能化軟件開發(fā)支持。

    未來有效的智能化代碼復用推薦應當以一種人機協(xié)作的智能化助手的形式來實現(xiàn),通過持續(xù)觀察開發(fā)人員的行為以及代碼上下文的變化,及時發(fā)現(xiàn)問題,并在需要的時候提供各種幫助。這種智能化開發(fā)助手需要與軟件開發(fā)人員持續(xù)交互和協(xié)作,并具備交互式澄清與解釋、逐步細化解決方案建議、獲取和利用技術和業(yè)務背景知識、按需提供不同粒度和不同形式的解決方案等方面的能力。

    圖12 API上下文圖示例

    猜你喜歡
    開發(fā)人員語句代碼
    重點:語句銜接
    Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應用
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    精彩語句
    讓Windows 10進入開發(fā)者模式
    電腦迷(2015年12期)2015-04-29 23:22:51
    后悔了?教你隱藏開發(fā)人員選項
    電腦愛好者(2015年6期)2015-04-03 01:20:56
    如何搞定語句銜接題
    語文知識(2014年4期)2014-02-28 21:59:52
    精品一区二区三卡| 日韩欧美 国产精品| 免费看日本二区| 欧美国产精品一级二级三级 | 啦啦啦啦在线视频资源| 黑人猛操日本美女一级片| 久久人妻熟女aⅴ| 成人一区二区视频在线观看| 又爽又黄a免费视频| 女人十人毛片免费观看3o分钟| 婷婷色综合大香蕉| 精品熟女少妇av免费看| 国产精品国产av在线观看| 日韩一区二区三区影片| 偷拍熟女少妇极品色| 亚洲国产精品专区欧美| 久久久久久九九精品二区国产| 日韩电影二区| 国产免费一区二区三区四区乱码| 亚洲欧美日韩无卡精品| 亚洲色图av天堂| 又爽又黄a免费视频| 国产 精品1| 日韩欧美精品免费久久| 国产精品爽爽va在线观看网站| 国产黄色免费在线视频| a级一级毛片免费在线观看| 一区二区三区免费毛片| 2018国产大陆天天弄谢| 一区在线观看完整版| 你懂的网址亚洲精品在线观看| 成人美女网站在线观看视频| 熟女人妻精品中文字幕| 一二三四中文在线观看免费高清| 少妇丰满av| 欧美亚洲 丝袜 人妻 在线| 欧美xxⅹ黑人| 在线观看免费视频网站a站| 18禁动态无遮挡网站| 国产高清国产精品国产三级 | 亚洲色图综合在线观看| 丰满乱子伦码专区| 成人国产麻豆网| 国产成人精品久久久久久| 免费看光身美女| 久久久久久久亚洲中文字幕| 蜜桃久久精品国产亚洲av| 狂野欧美白嫩少妇大欣赏| 91久久精品国产一区二区成人| 视频区图区小说| 中文天堂在线官网| 看免费成人av毛片| 国产高清三级在线| 日韩亚洲欧美综合| 丰满迷人的少妇在线观看| 在线观看免费日韩欧美大片 | 五月伊人婷婷丁香| 日韩av在线免费看完整版不卡| 九九在线视频观看精品| 国产精品麻豆人妻色哟哟久久| 五月天丁香电影| 精品久久久精品久久久| 日本av手机在线免费观看| 久久国产乱子免费精品| 国产免费福利视频在线观看| 九草在线视频观看| 国产毛片在线视频| 成年女人在线观看亚洲视频| 97在线人人人人妻| 韩国高清视频一区二区三区| 人体艺术视频欧美日本| 国产精品伦人一区二区| 国产成人aa在线观看| 91精品伊人久久大香线蕉| 黑人猛操日本美女一级片| 久久99热这里只有精品18| 在线观看av片永久免费下载| 精品熟女少妇av免费看| av天堂中文字幕网| 熟女av电影| 欧美高清性xxxxhd video| 久久精品夜色国产| 毛片女人毛片| 少妇猛男粗大的猛烈进出视频| 国产精品女同一区二区软件| 成人国产av品久久久| 一级a做视频免费观看| 97超视频在线观看视频| 各种免费的搞黄视频| 又大又黄又爽视频免费| 免费高清在线观看视频在线观看| 亚洲一区二区三区欧美精品| av网站免费在线观看视频| 国产女主播在线喷水免费视频网站| 亚洲成人av在线免费| 色网站视频免费| 波野结衣二区三区在线| 欧美人与善性xxx| 中国美白少妇内射xxxbb| 亚洲精华国产精华液的使用体验| 另类亚洲欧美激情| 大又大粗又爽又黄少妇毛片口| 国产免费又黄又爽又色| 国产一区有黄有色的免费视频| 国产高清三级在线| 青春草视频在线免费观看| 久久国产精品男人的天堂亚洲 | 亚洲av成人精品一区久久| 男女无遮挡免费网站观看| 秋霞伦理黄片| 亚洲三级黄色毛片| 久久亚洲国产成人精品v| 亚洲人成网站在线观看播放| 日韩在线高清观看一区二区三区| 国产高清三级在线| 亚洲精华国产精华液的使用体验| 高清在线视频一区二区三区| av在线老鸭窝| 欧美一级a爱片免费观看看| 亚洲精品456在线播放app| 热99国产精品久久久久久7| 久久久久久伊人网av| 日韩中字成人| 黄片无遮挡物在线观看| 国产精品福利在线免费观看| 看十八女毛片水多多多| 伦理电影大哥的女人| 成人高潮视频无遮挡免费网站| 亚洲国产精品999| 国产精品国产av在线观看| 日日摸夜夜添夜夜添av毛片| 免费看不卡的av| 联通29元200g的流量卡| 在线观看一区二区三区激情| 热re99久久精品国产66热6| 欧美精品亚洲一区二区| 精品人妻熟女av久视频| 色婷婷久久久亚洲欧美| 国产黄色视频一区二区在线观看| 亚洲四区av| 男人和女人高潮做爰伦理| 一级二级三级毛片免费看| 黑人高潮一二区| 国产 一区精品| 国产 一区精品| 国产午夜精品久久久久久一区二区三区| 国产精品一区二区在线观看99| 人体艺术视频欧美日本| 国产精品.久久久| 久久久久国产网址| 伦精品一区二区三区| 高清视频免费观看一区二区| 国产精品人妻久久久久久| 成人综合一区亚洲| 黄色欧美视频在线观看| tube8黄色片| 99久久精品一区二区三区| 国产精品一区二区三区四区免费观看| 日本黄色日本黄色录像| 最近中文字幕2019免费版| 性色avwww在线观看| 久久国产亚洲av麻豆专区| 亚洲av电影在线观看一区二区三区| 黑人猛操日本美女一级片| 成人特级av手机在线观看| 少妇的逼好多水| 97超视频在线观看视频| 九九久久精品国产亚洲av麻豆| 免费观看a级毛片全部| 观看av在线不卡| 精华霜和精华液先用哪个| 欧美日韩精品成人综合77777| 五月伊人婷婷丁香| 少妇人妻久久综合中文| 又粗又硬又长又爽又黄的视频| 亚洲精品国产成人久久av| 成人特级av手机在线观看| 激情五月婷婷亚洲| 嫩草影院新地址| av卡一久久| 久久国内精品自在自线图片| 国产美女午夜福利| 欧美丝袜亚洲另类| 国产一级毛片在线| 直男gayav资源| 国产一区有黄有色的免费视频| 国产伦精品一区二区三区四那| 亚洲三级黄色毛片| 色网站视频免费| 免费观看av网站的网址| 夫妻性生交免费视频一级片| 国产免费一级a男人的天堂| 我的老师免费观看完整版| 人体艺术视频欧美日本| 人妻夜夜爽99麻豆av| 亚洲欧美成人综合另类久久久| 日韩大片免费观看网站| 高清av免费在线| 青青草视频在线视频观看| 一二三四中文在线观看免费高清| 99久久精品国产国产毛片| 国产精品99久久99久久久不卡 | 少妇的逼好多水| 伦理电影免费视频| 啦啦啦中文免费视频观看日本| 女人十人毛片免费观看3o分钟| 亚洲婷婷狠狠爱综合网| 亚洲aⅴ乱码一区二区在线播放| 校园人妻丝袜中文字幕| 一区二区三区免费毛片| 在现免费观看毛片| 国产成人aa在线观看| 亚洲av综合色区一区| 久热久热在线精品观看| 国产日韩欧美在线精品| 91狼人影院| 高清午夜精品一区二区三区| 纵有疾风起免费观看全集完整版| 少妇丰满av| 国产一区亚洲一区在线观看| 日韩强制内射视频| 能在线免费看毛片的网站| 国产v大片淫在线免费观看| 亚洲无线观看免费| 日韩av在线免费看完整版不卡| 欧美日韩精品成人综合77777| 18禁裸乳无遮挡动漫免费视频| 日本爱情动作片www.在线观看| 水蜜桃什么品种好| 涩涩av久久男人的天堂| 国产精品不卡视频一区二区| 国产伦理片在线播放av一区| 亚洲成色77777| 国产女主播在线喷水免费视频网站| 国产精品福利在线免费观看| 亚洲欧美成人综合另类久久久| 一边亲一边摸免费视频| av国产精品久久久久影院| 国产精品久久久久成人av| 少妇 在线观看| 亚洲精品456在线播放app| 精品一区二区三卡| 亚洲欧美日韩东京热| 大话2 男鬼变身卡| av国产免费在线观看| 国产一区亚洲一区在线观看| 青春草亚洲视频在线观看| 少妇猛男粗大的猛烈进出视频| 国产淫片久久久久久久久| 超碰97精品在线观看| 国产一区有黄有色的免费视频| 久久亚洲国产成人精品v| 国产av精品麻豆| 日日啪夜夜撸| 一本—道久久a久久精品蜜桃钙片| 久久影院123| 亚洲va在线va天堂va国产| 三级国产精品片| videos熟女内射| 免费看不卡的av| 亚洲经典国产精华液单| 亚洲激情五月婷婷啪啪| 亚洲怡红院男人天堂| 国产亚洲午夜精品一区二区久久| 久久久久国产精品人妻一区二区| 18禁在线播放成人免费| 18禁在线无遮挡免费观看视频| 国产成人aa在线观看| 直男gayav资源| 国产精品不卡视频一区二区| 免费观看av网站的网址| 国产 一区精品| 九色成人免费人妻av| 久久 成人 亚洲| 久久精品国产亚洲网站| 国产大屁股一区二区在线视频| 国产午夜精品一二区理论片| 久久女婷五月综合色啪小说| 日产精品乱码卡一卡2卡三| 一本—道久久a久久精品蜜桃钙片| 黄色怎么调成土黄色| 国产亚洲精品久久久com| 色视频www国产| 青春草视频在线免费观看| h日本视频在线播放| 亚洲精品视频女| 一本—道久久a久久精品蜜桃钙片| 青青草视频在线视频观看| 亚洲四区av| 超碰97精品在线观看| 欧美97在线视频| 亚洲中文av在线| 亚洲精品乱码久久久久久按摩| 美女国产视频在线观看| 偷拍熟女少妇极品色| 80岁老熟妇乱子伦牲交| 国产精品久久久久成人av| 免费看av在线观看网站| 男女无遮挡免费网站观看| 精品国产一区二区三区久久久樱花 | 欧美一区二区亚洲| 国产精品嫩草影院av在线观看| 18禁动态无遮挡网站| 人人妻人人看人人澡| 寂寞人妻少妇视频99o| www.色视频.com| 国产黄片视频在线免费观看| 少妇 在线观看| 亚洲av成人精品一区久久| h日本视频在线播放| 国产真实伦视频高清在线观看| 精品久久国产蜜桃| 男男h啪啪无遮挡| 亚洲国产精品成人久久小说| 国产精品99久久99久久久不卡 | 一级二级三级毛片免费看| 啦啦啦中文免费视频观看日本| 亚洲国产成人一精品久久久| 欧美激情国产日韩精品一区| 制服丝袜香蕉在线| 国产精品福利在线免费观看| a级毛片免费高清观看在线播放| 简卡轻食公司| 国产成人a区在线观看| 欧美高清成人免费视频www| 在线天堂最新版资源| 九九久久精品国产亚洲av麻豆| 久久综合国产亚洲精品| 日韩 亚洲 欧美在线| 精品亚洲成国产av| 波野结衣二区三区在线| 亚洲美女黄色视频免费看| 精品国产三级普通话版| 99九九线精品视频在线观看视频| 热99国产精品久久久久久7| 午夜精品国产一区二区电影| 熟女av电影| 国产精品.久久久| freevideosex欧美| 国产精品欧美亚洲77777| 亚洲高清免费不卡视频| 丝袜脚勾引网站| 内地一区二区视频在线| h视频一区二区三区| 人妻夜夜爽99麻豆av| 各种免费的搞黄视频| 免费大片18禁| 国产精品嫩草影院av在线观看| 亚洲精品乱码久久久v下载方式| 成年女人在线观看亚洲视频| 久久国产精品大桥未久av | 高清午夜精品一区二区三区| 男女下面进入的视频免费午夜| 舔av片在线| 一区二区三区免费毛片| 黄色视频在线播放观看不卡| 丝袜喷水一区| 国产成人精品一,二区| 国产精品.久久久| 亚洲av国产av综合av卡| 中国三级夫妇交换| 男男h啪啪无遮挡| 日本黄色片子视频| 大又大粗又爽又黄少妇毛片口| 一区二区三区精品91| 男男h啪啪无遮挡| 久久精品国产亚洲av天美| 成人亚洲欧美一区二区av| 十分钟在线观看高清视频www | 国产一区二区在线观看日韩| 免费观看性生交大片5| 国产爽快片一区二区三区| 日韩亚洲欧美综合| 亚洲图色成人| 欧美激情极品国产一区二区三区 | 黄色一级大片看看| av免费观看日本| 一二三四中文在线观看免费高清| 欧美3d第一页| 久久精品熟女亚洲av麻豆精品| 欧美激情极品国产一区二区三区 | av免费观看日本| 一级a做视频免费观看| 91久久精品国产一区二区成人| 亚洲精品日本国产第一区| 亚洲精品国产av蜜桃| 80岁老熟妇乱子伦牲交| 日韩一本色道免费dvd| 久久人人爽人人爽人人片va| 丝袜脚勾引网站| 成人午夜精彩视频在线观看| 亚洲真实伦在线观看| 国产av国产精品国产| 国产 一区 欧美 日韩| 一级毛片黄色毛片免费观看视频| 国产亚洲欧美精品永久| 久久99热6这里只有精品| av福利片在线观看| 国产精品人妻久久久影院| 午夜福利影视在线免费观看| 18禁动态无遮挡网站| 国产有黄有色有爽视频| 少妇人妻久久综合中文| 一区二区三区乱码不卡18| 男人添女人高潮全过程视频| 日产精品乱码卡一卡2卡三| 人人妻人人添人人爽欧美一区卜 | 99久久精品一区二区三区| 自拍偷自拍亚洲精品老妇| 超碰av人人做人人爽久久| 国产精品伦人一区二区| 成人亚洲精品一区在线观看 | 久久影院123| 亚洲成人一二三区av| 内射极品少妇av片p| 精品一区二区免费观看| 国产淫片久久久久久久久| 91精品一卡2卡3卡4卡| 欧美日韩视频精品一区| 王馨瑶露胸无遮挡在线观看| 精品久久久噜噜| 在线观看av片永久免费下载| 欧美性感艳星| 内地一区二区视频在线| 成年美女黄网站色视频大全免费 | 日本黄色片子视频| 99国产精品免费福利视频| 欧美bdsm另类| 国模一区二区三区四区视频| 成年女人在线观看亚洲视频| 国产午夜精品久久久久久一区二区三区| 免费观看性生交大片5| 精品人妻一区二区三区麻豆| 亚洲av中文av极速乱| 久久 成人 亚洲| 老女人水多毛片| 欧美97在线视频| 在线观看av片永久免费下载| 最近中文字幕高清免费大全6| 亚洲成人中文字幕在线播放| 亚洲国产欧美在线一区| 99热6这里只有精品| 你懂的网址亚洲精品在线观看| 成人漫画全彩无遮挡| videos熟女内射| 中文欧美无线码| 毛片女人毛片| 一个人看视频在线观看www免费| 一级毛片 在线播放| 乱系列少妇在线播放| 日韩,欧美,国产一区二区三区| 亚州av有码| 国产69精品久久久久777片| 一个人看的www免费观看视频| 有码 亚洲区| 国产精品久久久久久久久免| 国产高清不卡午夜福利| 欧美性感艳星| 最近最新中文字幕大全电影3| 亚洲精品,欧美精品| 国产精品久久久久久av不卡| 国产淫语在线视频| av国产免费在线观看| 国产老妇伦熟女老妇高清| 国产在线免费精品| 精品久久国产蜜桃| 亚洲精品乱码久久久v下载方式| 永久免费av网站大全| 久久 成人 亚洲| 欧美高清成人免费视频www| 国产精品一及| 日本黄色片子视频| 国产男女超爽视频在线观看| 丰满人妻一区二区三区视频av| 三级国产精品片| 欧美三级亚洲精品| 黄色怎么调成土黄色| 成人一区二区视频在线观看| 精品久久久久久久久亚洲| 99久国产av精品国产电影| 精品少妇黑人巨大在线播放| 亚洲自偷自拍三级| 蜜桃亚洲精品一区二区三区| 免费观看av网站的网址| 综合色丁香网| 中文字幕久久专区| 日韩伦理黄色片| 日韩人妻高清精品专区| 久久国产亚洲av麻豆专区| a级一级毛片免费在线观看| 久久99热这里只有精品18| 午夜激情福利司机影院| 久久久久久久久久人人人人人人| 中国国产av一级| 国产淫语在线视频| 国产伦精品一区二区三区视频9| 麻豆精品久久久久久蜜桃| 国产av码专区亚洲av| 久久6这里有精品| 国产成人一区二区在线| 久久ye,这里只有精品| 新久久久久国产一级毛片| 亚洲欧美日韩无卡精品| 在线免费十八禁| 成人免费观看视频高清| 亚洲国产精品一区三区| 亚洲国产毛片av蜜桃av| 又大又黄又爽视频免费| 婷婷色av中文字幕| 亚洲精品久久久久久婷婷小说| 午夜福利影视在线免费观看| 九草在线视频观看| 精品一区在线观看国产| 又黄又爽又刺激的免费视频.| 免费观看a级毛片全部| 亚洲欧美一区二区三区国产| 最近中文字幕2019免费版| 校园人妻丝袜中文字幕| 国产在线男女| 最近最新中文字幕免费大全7| 国产精品伦人一区二区| 日韩av不卡免费在线播放| 美女cb高潮喷水在线观看| 九草在线视频观看| 中国国产av一级| 免费人成在线观看视频色| 精品久久久久久电影网| 国产无遮挡羞羞视频在线观看| 成人毛片60女人毛片免费| 好男人视频免费观看在线| 亚洲在久久综合| 国产精品爽爽va在线观看网站| 国产成人a区在线观看| 日本wwww免费看| 麻豆精品久久久久久蜜桃| 永久免费av网站大全| 性色avwww在线观看| 一个人看的www免费观看视频| 人人妻人人添人人爽欧美一区卜 | 日韩欧美一区视频在线观看 | 亚洲熟女精品中文字幕| 最近的中文字幕免费完整| 男女免费视频国产| 99久久综合免费| 亚洲欧美日韩东京热| 亚洲av电影在线观看一区二区三区| 亚洲丝袜综合中文字幕| 国产一区亚洲一区在线观看| 尤物成人国产欧美一区二区三区| 亚洲成人中文字幕在线播放| 51国产日韩欧美| 欧美xxⅹ黑人| 最后的刺客免费高清国语| 精品酒店卫生间| 青青草视频在线视频观看| 免费看不卡的av| 欧美国产精品一级二级三级 | 蜜桃亚洲精品一区二区三区| 欧美精品一区二区免费开放| av国产精品久久久久影院| 国产又色又爽无遮挡免| 2018国产大陆天天弄谢| 亚洲av成人精品一区久久| 精品一区二区免费观看| 久久久久久人妻| 国产伦精品一区二区三区视频9| 免费看日本二区| 欧美日韩视频精品一区| 亚洲人成网站在线播| 亚洲av成人精品一二三区| 老熟女久久久| 成人国产av品久久久| 99热国产这里只有精品6| 高清欧美精品videossex| 蜜桃在线观看..| 日韩制服骚丝袜av| 国产精品一区www在线观看| 欧美 日韩 精品 国产| 国产精品99久久久久久久久| 最新中文字幕久久久久| 国产亚洲精品久久久com| 日韩成人伦理影院| 日韩制服骚丝袜av| 久久久久国产精品人妻一区二区| 看免费成人av毛片| 国产精品人妻久久久影院| 韩国高清视频一区二区三区| av福利片在线观看| 成人特级av手机在线观看| 蜜桃久久精品国产亚洲av| 高清黄色对白视频在线免费看 | 国产av精品麻豆| 91久久精品国产一区二区三区| 精品99又大又爽又粗少妇毛片| 两个人的视频大全免费| 久久国产亚洲av麻豆专区| 男女无遮挡免费网站观看| 在线观看一区二区三区| 国产人妻一区二区三区在| 大香蕉久久网| 亚洲欧洲日产国产| 又爽又黄a免费视频| 中国三级夫妇交换| av在线老鸭窝| 各种免费的搞黄视频| 免费少妇av软件| 国产亚洲91精品色在线| 久久精品熟女亚洲av麻豆精品| 亚洲内射少妇av| 99久久精品一区二区三区| 欧美少妇被猛烈插入视频| av视频免费观看在线观看| 国产高清国产精品国产三级 | 亚洲自偷自拍三级| 亚洲第一av免费看|