亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種程序語句錯誤檢測方法和裝置與流程

文檔序號:11234000閱讀:1132來源:國知局
一種程序語句錯誤檢測方法和裝置與流程

本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種程序語句錯誤檢測方法和裝置。



背景技術(shù):

本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現(xiàn)有技術(shù)。

程序中空指針的使用是一個致命的問題,且往往不容易被發(fā)現(xiàn),為了防止此種錯誤,指針使用之前的判空操作不可忽視。目前有很多針對特定編程語言的工具可以自動檢測指針的未判空使用,例如針對c語言的coverity代碼靜態(tài)檢測工具。然而,lua作為游戲后臺的主流開發(fā)腳本語言,目前并沒有工具來自動檢測指針的未判空使用。而指針未判空使用的后果常常是程序崩潰引起宕機,因此,如何對程序中指針未判空使用進行檢測成為現(xiàn)有技術(shù)中亟待解決的技術(shù)問題之一。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供了一種程序語句錯誤檢測方法和裝置,用以減少由于程序語句錯誤導(dǎo)致的程序運行錯誤或者程序運行崩潰的問題。

本發(fā)明實施例提供一種程序語句錯誤檢測方法,包括:

遍歷待檢測程序語句,識別所述待檢測程序語句中包含的變量;

針對識別出的每一變量,確定包含該變量的程序語句的語句類型和包含該變量的程序語句的位置信息,所述語句類型包括使用語句和賦值語句;并

針對每一使用語句,根據(jù)該使用語句的位置信息和該使用語句中包含的被使用變量所對應(yīng)的賦值語句的位置信息,分析相應(yīng)的賦值語句和使用語句之間包含的程序語句得到所述被使用變量使用的依賴條件;

根據(jù)所述依賴條件判斷被使用變量是否存在使用錯誤。

本發(fā)明實施例提供一種程序語句錯誤檢測裝置,包括:

識別單元,用于遍歷待檢測程序語句,識別所述待檢測程序語句中包含的變量;

確定單元,用于針對識別出的每一變量,確定包含該變量的程序語句的語句類型和包含該變量的程序語句的位置信息,所述語句類型包括使用語句和賦值語句;

分析單元,用于針對每一使用語句,根據(jù)該使用語句的位置信息和該使用語句中包含的被使用變量所對應(yīng)的賦值語句的位置信息,分析相應(yīng)的賦值語句和使用語句之間包含的程序語句得到所述被使用變量使用的依賴條件;

判斷單元,用于根據(jù)所述分析單元得到的依賴條件判斷被使用變量是否存在使用錯誤。

本發(fā)明實施例提供的程序語句錯誤檢測方法和裝置,通過對程序語句中包含的變量進行識別,針對每一變量,從待檢測程序語句中確定出包含該變量的使用程序語句和賦值程序語句以及每一類型程序語句的位置信息,針對每一被使用語句,根據(jù)該使用語句的位置信息和該使用語句中包含的被使用變量對應(yīng)的賦值語句的位置信息,對相應(yīng)的賦值語句和使用語句之間包含的程序語句進行分析得到所述被使用變量使用的依賴條件,根據(jù)該變量使用的依賴條件判斷該變量是否存在使用錯誤,由此,實現(xiàn)了對程序語句中的變化使用錯誤進行檢測,減少了由于程序語句錯誤導(dǎo)致的程序運行錯誤或者程序運行崩潰的問題。

本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

圖1為本發(fā)明實施例中,程序語句錯誤檢測方法的實施流程示意圖;

圖2為本發(fā)明實施例中,第一種待檢測程序語句示意圖;

圖3為本發(fā)明實施例中,第一種待檢測程序語句對應(yīng)的vdg示意圖;

圖4為本發(fā)明實施例中,第二種待檢測程序語句示意圖;

圖5為本發(fā)明實施例中,對第二種待檢測程序語句進行指針未判空使用檢測的流程示意圖;

圖6為本發(fā)明實施例中,第二種待檢測程序語句對應(yīng)的vdg示意圖;

圖7為本發(fā)明實施例中,程序語句錯誤檢測裝置的結(jié)構(gòu)示意圖。

具體實施方式

為了減少由于程序語句錯誤導(dǎo)致的程序運行錯誤或者程序運行崩潰的問題,本發(fā)明實施例提供了一種程序語句錯誤檢測方法和裝置。

以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。

如圖1所示,其為本發(fā)明實施例提供的程序語句錯誤檢測方法的實施流程示意圖,可以包括以下步驟:

s11、遍歷待檢測程序語句,識別待檢測程序語句中包含的變量。

具體實施時,可以根據(jù)程序語句中包含的預(yù)設(shè)標(biāo)識符來識別待檢測程序語句中包含的變量。為了便于描述,以指針變量為例,在lua語言中,判斷一個變量是否為指針的方法如下:指針的使用是冒號形式,比如調(diào)用函數(shù)“pointer:method()”,基于此,本發(fā)明實施例中,可以遍歷待檢測程序語句,查找到所有包含冒號的程序語句,提取出冒號之前的變量(本例中即為指針)。

較佳地,為了提高變量識別效率,本發(fā)明實施例中,在執(zhí)行步驟s11之前,可以抽象出待檢測程序語句的ast(abstractsyntaxtree,抽象語法樹),基于此,步驟s11中,可以遍歷構(gòu)造的ast,識別ast中包含的預(yù)設(shè)標(biāo)識符,從包含預(yù)設(shè)標(biāo)識符的程序語句中提取待檢測程序語句中包含的變量。

具體實施時,可以借用lua的開源parser工具lua-parser,利用訪問者(visitor)模式構(gòu)造待檢測程序語句的ast樹,然后用visitor遍歷該ast樹,識別該ast中包含的預(yù)設(shè)標(biāo)識符,例如,對于指針變量,該預(yù)設(shè)標(biāo)識符可以為冒號,由此識別出待檢測程序語句中包含的指針變量。

為了便于理解,以待檢測程序語句為圖2所示的程序語句為例,遍歷圖2所示的程序語句可以得到3個包含冒號的表達式,提取出冒號之前的變量(本例中即為pointer和puser)添加至指針變量集合中,為了便于描述,本發(fā)明實施例中以判斷指針pointer使用是否存在錯誤為例進行說明。

較佳地,具體實施時,由于未使用的變量不會引發(fā)程序運行錯誤或者程序運行崩潰,為了進一步提高識別效率,本發(fā)明實施例中可以僅針對使用的變量進行識別,即本發(fā)明實施例中僅針對使用語句中包含的被使用變量進行識別。

s12、針對識別出的每一變量,確定包含該變量的程序語句的語句類型和包含該變量的程序語句的位置信息。

本步驟中,針對步驟s11中識別出的每一變量,確定包含該變量的程序語句的位置信息和語句類型。其中,語句類型包含賦值語句和使用語句。

針對識別出的每一變量,通過遍歷構(gòu)造的ast樹確定包含該變量的程序語句。進一步地,可以根據(jù)包含該變量的程序語句中的特征標(biāo)識符來確定該程序語句的語句類型。例如,對于賦值語句來說,程序語句中包含的特征標(biāo)識符可以為等于號(“=”),對于使用語句來說,程序語句中包含的特征標(biāo)識符可以為冒號(“:”)。

為了便于說明,仍然以指針變量為例進行說明。針對每一包含指針變量的程序語句,可以根據(jù)該程序語句包含的特征標(biāo)識符來確定該程序語句的語句類型。以圖2所示的程序語句為例,根據(jù)步驟s11中識別出包含指針變量的表達式如下:1、localpointer=nil;2、pointer=puser:getpointer1();3、pointer=puser:getpointer2();4、returnpointer:getintval()。

根據(jù)上述語句類型的確定方式可知,表達式1中僅包含等于號,因此,表達式1屬于賦值語句;表達式2和表達式3中包含等于號和冒號,對于指針pointer來說,表達式2和表達式3屬于賦值語句,對于指針puser來說表達式2和表達式3屬于使用語句,表達式4中僅包含冒號,因此,表達式4屬于使用語句。

進一步地,還需要確定出每一類型程序語句的在待檢測程序語句中的位置信息,不同程序語句的位置信息可以以該程序語句在待檢測程序語句中的行數(shù)表示。例如,上述表達式1在待檢測程序語句中的位置信息可以表示為第5行;上述表達式2在待檢測程序語句中的位置信息可以表示為第11行,上述表達式3在待檢測程序語句中的位置信息可以表示為第17行,上述表達式4在待檢測程序語句中的位置信息可以表示為第22行。

需要說明的是,具體實施時,在確定使用語句時,無需確定正確的使用語句。以檢測程序語句錯誤為是否包含指針變量未判空使用為例,則在步驟s12中確定包含指針變量的使用語句中無需確定指針變量判空使用的程序語句,例如,圖2所示的程序語句中包含的如下語句:“ifpointer==nil”。

s13、針對每一使用語句,根據(jù)該使用語句的位置信息和該使用語句中包含的被使用變量所對應(yīng)的賦值語句的位置信息,分析相應(yīng)的賦值語句和使用語句之間包含的程序語句得到所述被使用變量使用的依賴條件。

其中,依賴條件包括直接依賴條件和控制依賴條件,分析圖2所示的程序語句可得:指針pointer的直接依賴條件包括以下3個:1、localpointer=nil;2、pointer=puser:getpointer1();3、pointer=puser:getpointer2();而pointer的控制依賴條件包括:ifpint<4和ifflag==0,而flag控制依賴于pint>=4。

s14、根據(jù)所述依賴條件判斷被使用變量是否存在使用錯誤。

具體實施時,針對每一使用語句中包含的被使用變量,在確定出被使用變量的直接依賴條件和控制依賴條件之后,可以構(gòu)造出被使用變量的vdg(valuedependencegraph,值依賴圖)。在構(gòu)造的vdg上,針對每一使用語句,對該使用語句進行前向切片,直至到達被使用變量所對應(yīng)的第一條賦值語句為止,通過對前向切片進行分析可以判斷出被使用變量是否存在使用錯誤。需要說明的是,本發(fā)明實施例中涉及的被使用變量是指在使用語句中包含的變量,例如,使用語句returnpointer:getintval()中,被使用的變量即為“pointer”。

具體實施時,可以對前向切片進行分析,確定被使用變量的正確使用路徑;從正確使用路徑中查找被使用變量的控制依賴條件;并進一步確定控制依賴條件的反向條件。需要說明的是,如果控制依賴條件有多個,則需要確定多個控制依賴條件的并集的反向條件。

仍然以圖2所示的程序語句為例,針對使用語句returnpointer:getintval(),從第22行被使用變量pointer的使用程序語句“returnpointer:getintval()”開始對待檢測程序語句進行前向切片,直至第5行被使用變量pointer的第一條賦值語句“l(fā)ocalpointer=nil”為止,前向切片中的程序語句有對變量的賦值語句、使用語句以及對該變量的判空語句和相應(yīng)控制流。

如圖3所示,其為針對圖2所示的待檢測程序構(gòu)造的vdg進行前向切片后得到的vdg示意圖。根據(jù)圖3可以確定,指針變量正確使用路徑為圖3中虛線框內(nèi)所示部分。相應(yīng)地,根據(jù)指針變量正確使用路徑中可以查找到指針變量的控制依賴條件為pint<4||flag==0,對pint<4||flag==0取反可以得到其相應(yīng)的反向條件為!(flag==0)&&!(pint<4),而對于flag有其相應(yīng)的到達條件,從圖3所示的vdg圖中,可以確定flag的控制依賴條件為:((!(pint>=4))=>flag==1)&&((pint>=4)=>flag==0)。

進一步地,可以根據(jù)上述得到的分析結(jié)果判斷被使用變量是否存在使用錯誤。具體實施時,可以將分析結(jié)果中得到的反向條件輸入約束求解器;如果約束求解器輸出求解結(jié)果,則確定被使用變量存在使用錯誤,如果約束求解器未輸出求解結(jié)果,則確定被使用變量不存在使用錯誤。較佳地,具體實施時,約束求解器可以使用z3約束求解器。

本例中,可以將條件1:!(flag==0)&&!(pint<4)和條件2:((!(pint>=4))=>flag==1)&&((pint>=4)=>flag==0)作為約束條件輸入z3約束求解器中,z3解不出滿足該約束條件的值,因此,不存在變量使用錯誤。

具體實施時,如果判斷出待檢測程序語句存在變量使用錯誤,則還可以根據(jù)實際情況,針對判斷出的變量使用錯誤進行修復(fù);或者輸出變量存在使用錯誤的提示信息。較佳地,輸出的提示信息中可以包含有使用語句語句的位置信息,這樣,可以快速地定位到存在變量使用錯誤的程序語句。

較佳地,本發(fā)明實施例涉及的變量使用錯誤可以為指針變量未判空使用。相應(yīng)地,在針對判斷出的變量使用錯誤進行修復(fù)時,可以根據(jù)根據(jù)使用語句的位置信息,在使用語句之前插入變量判空條件語句或者針對檢測到的指針未判空使用輸出相應(yīng)地提示信息。

為了更好地理解本發(fā)明實施例,以下結(jié)合檢測圖4所示的程序語句是否存在指針未判空使用的流程對本發(fā)明實施例的具體實施過程進行說明,如圖5所示,可以包括以下步驟:

s51、構(gòu)造待檢測程序語句的ast樹。

本步驟中,可以使用lua的開源parser工具lua-parser,利用訪問者模式構(gòu)造待檢測程序語句的ast樹。

s52、遍歷構(gòu)造的ast樹,識別其中的指針變量。

本步驟中,遍歷構(gòu)造的ast樹,識別出其中包含冒號的所有表達式,提取出冒號之前的變量加入到指針變量集合中。

s53、針對每一指針變量,構(gòu)造該指針變量對應(yīng)的vdg圖。

本步驟中,可以遍歷ast樹,確定包含指針變量的程序語句的語句類型以及包含指針變量的程序語句的位置信息,本發(fā)明實施例中可以分為賦值語句和使用語句,并根據(jù)賦值語句和使用語句構(gòu)造待檢測程序的值依賴圖vdg。

s54、在所述vdg上,針對每條使用語句,對該使用語句進行前向切片。

本步驟中,在構(gòu)造的vdg圖上,針對每個使用語句,對該使用語句開始做前向切片,直至到達該使用語句中包含的被使用指針?biāo)鶎?yīng)的第一條賦值語句,切片中的語句有對某個指針的賦值語句、使用語句、以及對該指針的判空語句和相應(yīng)控制流。如圖6所示,其針對圖4所示的程序語句中的指針變量使用語句進行前向切片后得到的vdg示意圖。

s55、分析切片,確定指針變量未判空使用的條件。

本步驟中,針對步驟s54中得到的前向切片,對得到的前向切片進行分析確定指針變量正確使用路徑,即指針賦值后經(jīng)判空使用的路徑,該正確使用路徑為圖6中虛線框中所示部分。分析圖6所示的vdg圖可以得到,指針變量正確使用的控制依賴條件為條件3:(flag==0)||(pint<3),對該控制依賴條件取反可以得到條件4:!(flag==0)&&!(pint<3),而flag的控制依賴條件為條件5:((!(pint>=4))=>flag==1)&&((pint>=4)=>flag==0)。

s56、將指針未判空使用的條件輸入約束求解器。

s57、判斷約束求解器是否輸出求解結(jié)果,如果是,則執(zhí)行步驟s58,否則,執(zhí)行步驟s54。

針對圖4所示的待檢測程序語句,將條件5和條件4輸入z3約束求解器,z3解出滿足條件5和條件4的值為pint=3,因此,可以確定圖4所示的待檢測程序語句存在指針未判空直接使用的錯誤,即在pint=3時pointer為nil,且沒有判空。

s58、判斷待檢測程序中是否存在指針判空語句,如果是,則執(zhí)行步驟s59,否則,執(zhí)行步驟s510。

s59、根據(jù)該條使用語句的位置信息,在該條使用語句之前插入待檢測程序中包含的指針判空語句,返回執(zhí)行步驟s54。

本例中,存在其它指針判空語句,例如:

ifpointer==nilthen

return0

end

據(jù)此,可以在“returnpointer:getintval()”之前插入指針判空條件語句,條件語句中的return語句采用其他指針判空語句中的return語句,本例中即為“return0”。

s510、輸出存在指針未判空直接使用的提示信息,并返回執(zhí)行步驟s54。

較佳地,在輸出的提示信息中,可以包括該條使用語句的位置信息。

本發(fā)明實施例中,針對指針變量通過檢查從賦值語句到直接使用過程中是否有路徑可達(不包括判空語句),如果不可達,說明從指針賦值到直接使用之間必存在判空語句,否則存在指針使用未判空的情況,在這條路徑的使用指針語句之前插入判斷指針為空的語句,if語句中的return語句采用待檢測程序語句中指針判空中的return語句,如果待檢測程序語句中不存在其它指針判空語句,可以只是輸出提示信息,并不修復(fù),以免引入錯誤。

基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種程序語句錯誤檢測裝置,由于上述裝置解決問題的原理與程序語句錯誤檢測方法相似,因此上述裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。

如圖7所示,其為本發(fā)明實施例提供的程序語句錯誤檢測裝置的結(jié)構(gòu)示意圖,可以包括:

識別單元71,用于遍歷待檢測程序語句,識別所述待檢測程序語句中包含的變量;

確定單元72,用于針對識別出的每一變量,確定包含該變量的程序語句的語句類型和包含該變量的程序語句的位置信息,所述語句類型包括使用語句和賦值語句;

分析單元73,用于針對每一使用語句,根據(jù)該使用語句的位置信息和該使用語句中包含的被使用變量所對應(yīng)的賦值語句的位置信息,分析相應(yīng)的賦值語句和使用語句之間包含的程序語句得到所述被使用變量使用的依賴條件;

判斷單元74,用于根據(jù)所述分析單元73得到的依賴條件判斷被使用變量是否存在使用錯誤。

可選地,本發(fā)明實施例提供的程序語句錯誤檢測裝置還可以包括ast構(gòu)造單元,其中:

所述ast構(gòu)造單元,用于在所述識別單元遍歷待檢測程序語句之前,構(gòu)造所述待檢測程序語句的ast;

所述識別單元,具體用于遍歷所述ast,識別所述ast中包含的預(yù)設(shè)標(biāo)識符;從包含所述預(yù)設(shè)標(biāo)識符的程序語句中提取所述待檢測程序語句中包含的變量。

較佳地,所述依賴條件包括直接依賴條件和控制依賴條件。

較佳地,所述判斷單元74,具體包括:

vdg構(gòu)造子單元,用于根據(jù)所述直接依賴條件和控制依賴條件,構(gòu)造被使用變量的值依賴圖vdg;

切片子單元,用于在所述vdg中,針對每一使用語句,對該使用語句進行前向切片,直至到達該使用語句中包含的被使用變量所對應(yīng)的賦值語句為止;

分析子單元,用于對所述前向切片進行分析得到分析結(jié)果;

判斷子單元,用于根據(jù)所述分析結(jié)果,判斷被使用變量是否存在使用錯誤。

較佳地,所述分析子單元,具體用于對所述前向切片進行分析,確定被使用變量的正確使用路徑;從所述正確使用路徑中查找被使用變量的控制依賴條件;并確定所述控制依賴條件的反向條件。

較佳地,如果所述控制依賴條件有多個;則所述分析子單元,具體用于確定多個控制依賴條件的并集的反向條件。

較佳地,,所述判斷子單元,具體用于將所述反向條件輸入約束求解器;如果所述約束求解器輸出針對所述反向條件的求解結(jié)果,則確定被使用變量存在使用錯誤,如果所述約束求解器未輸出針對所述反向條件的求解結(jié)果,則確定被使用變量不存在使用錯誤。

可選地,本發(fā)明實施例提供的程序語句錯誤檢測裝置還可以包括:

修復(fù)單元,用于如果所述判斷單元判斷出被使用變量存在使用錯誤,則針對判斷出的變量使用錯誤進行修復(fù);或者

提示單元,用于輸出變量存在使用錯誤的提示信息。

可選地,所述提示信息中包含有存在變量使用錯誤的使用語句的位置信息。

較佳地,本發(fā)明實施例中涉及的變量包括指針變量;以及變量使用錯誤包括指針變量未判空使用。所述修復(fù)單元,具體用于針對判斷出的指針未判空使用錯誤,根據(jù)存在指針未判空使用錯誤的使用語句的位置信息,在相應(yīng)的使用語句之前插入指針判空條件語句。

為了描述的方便,以上各部分按照功能劃分為各模塊(或單元)分別描述。當(dāng)然,在實施本發(fā)明時可以把各模塊(或單元)的功能在同一個或多個軟件或硬件中實現(xiàn)。

在一些可能的實施方式中,根據(jù)本發(fā)明的程序語句錯誤檢測裝置可以包括至少一個處理單元、以及至少一個存儲單元。其中,所述存儲單元存儲有程序代碼,當(dāng)所述程序代碼被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行本說明書中描述的根據(jù)本發(fā)明各種示例性實施方式的程序語句錯誤檢測方法中的各種步驟。例如,所述處理單元可以執(zhí)行如圖1中所示的步驟s11,遍歷待檢測程序語句,識別待檢測程序語句中包含的變量,步驟s12,針對每一變量,確定包含該變量的程序語句的語句類型和包含該變量的程序語句的位置信息,所述語句類型包括使用語句和賦值語句;步驟s13,針對每一使用語句,根據(jù)該使用語句的位置信息和該使用語句中包含的被使用變量所對應(yīng)的賦值語句的位置信息,分析相應(yīng)的賦值語句和使用語句之間包含的程序語句得到所述被使用變量使用的依賴條件,以及步驟s14、根據(jù)所述依賴條件判斷被使用變量是否存在使用錯誤。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1