CN102495800A - Iterative refinement method for abstractly valuing variables in Do statement - Google Patents
Iterative refinement method for abstractly valuing variables in Do statement Download PDFInfo
- Publication number
- CN102495800A CN102495800A CN2011104001739A CN201110400173A CN102495800A CN 102495800 A CN102495800 A CN 102495800A CN 2011104001739 A CN2011104001739 A CN 2011104001739A CN 201110400173 A CN201110400173 A CN 201110400173A CN 102495800 A CN102495800 A CN 102495800A
- Authority
- CN
- China
- Prior art keywords
- interval
- thisdomain
- iteration
- data stream
- lastdomain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
The invention provides an iterative refinement method for abstractly valuing variables in a Do statement. The method comprises the following steps of: carrying out data stream iteration according to a control flow graph (CFG) to obtain a Last Domain; carrying out the data stream iteration of a Do statement block according to a loop condition of a Loop Head to obtain a This Domain; and carrying out Widening operation on the Last Domain and the This Domain. By utilizing the technical scheme disclosed by the invention, the technical problems that the iterative calculation for abstractly valuing the variables in the Do statement is low in convergence rate or is not converged can be solved.
Description
Technical field
The present invention relates to the Program Static Analysis technology, relate in particular to a kind of when Program Static Analysis, the iteration refinement method of the abstract value of variable in the loop statement.
Background technology
Program test is in a controlled environment, to analyze or the process of executive routine, its basic goal be with the least possible time and manpower find and the correction program in potential various faults and defective, the quality of raising program.From whether moving tested program, can program testing method be divided into two big types: dynamic testing method and static test; So-called dynamic test is come the dynamic behaviour of check program and the correctness of operation result through working procedure exactly; The essential characteristic of said static test is an actual motion program to be tested not when program being analyzed, checking and test.
Dynamic test and static test respectively have its relative merits, and the advantage of dynamic test is: found bug misunderstanding shows very intuitively; Shortcoming is: different test cases finds that wrong ability difference is very big, and is therefore high to the designing requirement of test case, in addition, needs the actual motion tested program also program test to be proposed higher requirement.The static test advantage is: do not need design test case, do not need the actual motion tested program, realize automatic test easily; The shortcoming of static test is: the problem that test is found often can not directly be confirmed as program error, need confirm that also therefore, static test also is known as static analysis through manual analysis.
At present; Usually adopt data stream iterative analysis method that program is carried out static analysis; Said data stream iterative analysis is a kind of technology that is used for obtaining the relevant information how relevant data flow along program execution path; Specifically be meant to repeat one group of instruction or certain step, when this group instruction of each execution or these steps, all release its new a value from the initial value of variable.The basis of data stream iterative analysis is that (Control Flow Graph, CFG), said CFG is a kind of digraph of response procedures logic control flow process to the control flow graph, is to carry out the requisite basic data structure of data stream iterative analysis.
The CFG of a program can be expressed as N usually, E, and Entry, Exit, wherein,
The set of N representation node, said node comprises: order node, branch node and converge node, wherein, and the order perform statement in the corresponding program of order node, it is follow-up to have 1 forerunner and 1; Condition judgment statement in the corresponding program of branch node has two or more follow-uply, and the condition criterion statement in the if in the program, switch and the loop statement all belongs to this type of branch node; Converge the node that withdraws from of each branch statement in the corresponding program of node, have two or more forerunners, the node when for example the if statement block withdraws from is if_out, and it has converged from the statement in the true and false branch; Loop statement head node LoopHead has converged from the direct precursor node and has looped back the data stream in the mid-side node.
E represents the set of directed edge, the control flow relation in its reflection program between statement.
Entry represents Ingress node, and this Ingress node is fixing, the unique Ingress node of function, and it is follow-up to have 0 forerunner and 1.
Exit represents Egress node, and this Egress node is fixing, the unique node that withdraws from of function, and it is follow-up to have 1 forerunner and 0.
Therefore, saying of summary: said CFG has fixing, the unique Ingress node and the digraph of Egress node; For adapting to the program of multiple entry and/or outlet, can in CFG, add unified entrance and/or Egress node.
Program implementation can be understood from the angle of program state and state exchange, is about to program implementation and regards a series of conversions to program state as; Program state is made up of the value of all variablees in the program, comprises the correlation of each stack frame under the stack top of the stack time of running simultaneously.When analyzing the behavior of a program, the program point sequence (being Program path) of the various flow graphs through program that possibly take in the time of must the execution of consideration program; Go up from each program point then and extract the information that needs the possible program state, in order to solve the specific data stream problem analysis.
In the program process, program state is in essence by two factor decisions: the current location that current value of each variable in the program (the variable here is sensu lato variable, comprises the content of various global memories, stack internal memory and heap memory) and program are carried out.Based on the notion of program state, program implementation can be regarded as a series of transfer processes of program state.Article one, the execution of statement program from a state exchange to another state; The semanteme of statement can be regarded as the transfer function to program state; Its input state joins with this statement program spot correlation before, and the program spot correlation behind output state and this statement joins.
When analyzing the dynamic behaviour of a program statically, maybe be when needing the consideration program to carry out through the various paths of CFG, then according to the needs of the problem analysis information of extraction needs the possible program state from each program point.In general, a program has infinite mulitpath, and the length in path does not have the upper bound yet.Process analysis is gathered all program states that possibly occur on each program point as the most basic information source usually; But can't accurately calculate and represent the possible program state set on each program point in the reality; Different analytical technology is selected the abstract useless information of falling, and keeps Useful Information.
In addition, traffic flow information is represented in the interval with variable in analytic process, so after generating CFG, need generate block information based on this CFG, said block information is the result that interval arithmetic obtains.The interval of so-called variable just is meant the span of variable.The purpose of interval arithmetic is that the span of variable that occurs in the program and expression formula is followed the tracks of, for further process analysis provides accurate information support.Variable among the Java has different types, so also there is different types in the interval of variable.
During calculated in actual interval, the value information of variable may be upgraded by following statement: variable assignments statement, condition judgment statement, cycle criterion statement etc.For assignment statement, it is obvious to the influence of the span of variable.For example: i=i+3; Suppose the original span of i for [1,5], carried out then that the span of i is [4,8] behind this statement.
Condition judgment in the program also can the variation span.For example:
The original span of i is [1,5], in the true branch of if statement, gets really and limits owing to receiving i>=3 conditions so; Then the span of i is: [3,5] correspondingly receive i>=3 conditions and get false qualification on the if false ramification; Then the span of i is: [1,2].Control stream plays a part to transmit and converge for the interval of variable.
The process of at present, program being carried out static analysis generally includes following steps:
At first, the CFG of generator program.
Secondly, close in Entry initialization data adfluxion.So-called set of data flows is to carry out the abstract of semanteme to program is actual, dynamic value information when it has comprised the operation of function shape ginseng, local variable and global variable.
At last; Be the basis with this initial set of data flows; Data-flow analysis framework according to classics carries out the data stream iteration successively along control stream, calculates the data stream In set and the data stream Out set of each node among the CFG respectively, and is stable up to the data flow state of each node; Just obtained each control and flowed the abstract value information that node (being every program statement) is located correlated variables, promptly the data-flow equations of whole function is separated.
When the abstract value of data stream iterative analysis method variable in carrying out loop statement is calculated,, cause iterations unknown, especially run into special cyclic (for example while (1) or for (i=0 because there is variable in the loop statement in the program; I<100000000; I++) in the time of similarly circulation), possibly cause the data stream iteration convergence slow, not even convergence, the data-flow equations that can't obtain whole function is separated, and final influence is carried out static analysis to program.
Summary of the invention
In view of this, fundamental purpose of the present invention is to provide the iteration refinement method of the abstract value of variable in a kind of loop statement, can solve in the loop statement slowly or not convergent problem of the abstract value iterative computation of variable speed of convergence.
For achieving the above object, technical scheme of the present invention is achieved in that
The invention discloses the iteration refinement method of the abstract value of variable in a kind of loop statement, said method comprises:
CFG carries out the data stream iteration according to the control flow graph, obtains the interval LastDomain of last iteration;
Carry out the data stream iteration of loop statement piece according to the cycling condition of hydraulic circulating head node LoopHead, obtain ThisDomain between this iterative region;
LastDomain and ThisDomain are widened the Widening operation.
Preferable, saidly carry out the data stream iteration according to CFG, obtain the interval LastDomain of last iteration and be:
Carry out the data stream iteration according to CFG; Obtain the interval of forerunner PostHeadNode of interval and circulation back edge character of direct precursor PreHeadNode of the loop statement of LoopHead, union is got in the interval of the interval of said PreHeadNode and PostHeadNode obtain the interval LastDomain of last iteration.
Preferable, said cycling condition according to LoopHead carries out the data stream iteration of loop statement piece, obtains that ThisDomain does between this iterative region,
Carry out the data stream iteration of loop statement piece according to the cycling condition of LoopHead; Generate the interval of new PostHeadNode; Union is got with new PostHeadNode interval in the interval of the PreHeadNode that last iteration is obtained, obtains ThisDomain between this iterative region.
Preferable, said LastDomain and ThisDomain to be carried out after the Widening operation, this method also comprises:
Judgement when interval after LastDomain compares Widening changes, with the interval behind the Widening as new LastDomain;
Repetition is carried out the data stream iteration of loop statement piece according to the cycling condition of LoopHead, obtains ThisDomain between this iterative region, the step that LastDomain and ThisDomain are carried out the Widening operation.
Preferable, said LastDomain and ThisDomain to be carried out after the Widening operation, this method also comprises:
Judgement does not change with interval after LastDomain compares Widening, and InterDomain between iterative region in the middle of the interval behind the Widening is designated as is as the input that narrows the Narrowing operation;
Carry out the data stream iteration of loop statement piece by cycling condition, obtain ThisDomain between this iterative region;
Whether judgement is compared ThisDomain and is changed with InterDomain, if change, InterDomain and ThisDomain are carried out the Narrowing operation; If do not change, the data stream iteration stops.
Preferable, saidly carry out the data stream iteration of loop statement piece by cycling condition, obtain that ThisDomain is between this iterative region:
Carry out the data stream iteration of loop statement piece by cycling condition, obtain the interval of PreHeadNode and the interval of PostHeadNode, union is got in the interval of the interval of said PreHeadNode and PostHeadNode obtain ThisDomain between this iterative region.
Preferable, said with after InterDomain and the ThisDomain execution Narrowing operation, this method also comprises:
Interval behind the Narrowing is designated as new InterDomain;
Repeat to be undertaken by cycling condition the data stream iteration of loop statement piece, obtain ThisDomain between this iterative region, the step whether ThisDomain changes is compared in judgement with InterDomain.
By on can know; The iteration refinement method of the abstract value of variable in the loop statement of the present invention; The Widening operator of widening in the abstract interpretation theory is applied to the data stream alternative manner; Make loop statement data stream iteration to restrain fast, improve the efficient that the data-flow equations obtain whole function is separated; The Narrowing operator that narrows in the abstract interpretation theory is applied to the data stream alternative manner, the data-flow equations that obtains is separated more near exact solution, help the circulating inner range of variables inspection and the interval arithmetic of circulation back variable.
Description of drawings
Fig. 1 is the schematic flow sheet of iteration refinement method first embodiment of the abstract value of variable in the loop statement of the present invention;
Fig. 2 is the CFG of example procedure segment;
Fig. 3 is the schematic flow sheet of iteration refinement method second embodiment of the abstract value of variable in the loop statement of the present invention;
Fig. 4 is the result of flow synoptic diagram of loop iteration refinement of the present invention.
Embodiment
First embodiment of the iteration refinement method of the abstract value of variable in the loop statement disclosed by the invention, as shown in Figure 1, said method comprises:
Concrete; Carry out the data stream iteration according to CFG; Obtain the interval of forerunner PostHeadNode of interval and circulation back edge character of direct precursor PreHeadNode of the loop statement of LoopHead, union is got in the interval of the interval of said PreHeadNode and PostHeadNode obtain the interval LastDomain of last iteration.
Concrete; Carry out the data stream iteration of loop statement piece according to the cycling condition of LoopHead; Generate the interval of new PostHeadNode, union is got with new PostHeadNode interval in the interval of the PreHeadNode that last iteration is obtained, obtains ThisDomain between this iterative region.
By on can know, adopt technique scheme that loop statement data stream iteration is restrained fast, improve the efficient that the data-flow equations that obtains whole function is separated.
Optional; Said LastDomain and ThisDomain are widened after the Widening operation; Also comprise: judge with interval after LastDomain compares Widening whether change, if change, with the interval behind the Widening as new LastDomain; The operation of repeating step 102 and step 103; Up to stopping with interval after LastDomain the compares Widening data stream iteration that do not change, this moment each control stream node related traffic flow information be the result of loop iteration refinement, finish this flow process.
Optional, said LastDomain and ThisDomain are widened after the Widening operation, also comprise:
Judgement does not change with interval after LastDomain compares Widening, and InterDomain between iterative region in the middle of the interval behind the Widening is designated as is as the input that narrows the Narrowing operation;
Carry out the data stream iteration of loop statement piece by cycling condition, obtain ThisDomain between this iterative region; Concrete; Carry out the data stream iteration of loop statement piece by cycling condition; Obtain the interval of PreHeadNode and the interval of PostHeadNode, union is got in the interval of the interval of said PreHeadNode and PostHeadNode obtain ThisDomain between this iterative region.
Whether judgement is compared ThisDomain and is changed with InterDomain, if change, InterDomain and ThisDomain are carried out the Narrowing operation; If do not change, the data stream iteration stops, this moment each control stream node related traffic flow information be the result of loop iteration refinement, finish this flow process.
Optional, said with after InterDomain and the ThisDomain execution Narrowing operation, also comprise:
Interval behind the Narrowing is designated as new InterDomain;
Repeat to be undertaken the data stream iteration of loop statement piece, obtain that ThisDomain compares the step whether ThisDomain changes with judgement between this iterative region with InterDomain by cycling condition.
By on can know, adopt technique scheme that the data-flow equations that obtains is separated more near exact solution, help the circulating inner range of variables inspection and the interval arithmetic of circulation back variable.
Be example to apply the present invention to a program segment below, the present invention is carried out detailed introduction.
Said program segment is following:
Wherein, the direct precursor PreHeadNode of the code behavior loop statement at L1 place, the code behavior hydraulic circulating head node LoopHead at L2 place, the code behavior of L5 place loops back the forerunner PostHeadNode of limit character.
The CFG of said program segment is as shown in Figure 2.Func_Head among the Func_Head_fun_0 among Fig. 2 is the Entry of function, and fun is a function name, and 0 is node ID; Similar, the Func_Out among the Func_Out_fun_6 is the Exit of function, 6 is node ID.
Order is analyzed by it in every limit of CFG all has corresponding numbers, like 0 on the arrow line among Fig. 1,1,3 and 4.Aid the border areas if divide, then according to its true and false condition difference called after T or F sequence number, like the T_2 on the arrow line among Fig. 1, F_5.
Semantic feature according to every program statement; For other nodes outside outlet, the Ingress node have all generated different prefix titles; For example declarative statement is that decl_stmt, while hydraulic circulating head node are while_head, and common statement is stmt, and all node back all have node ID.
Fig. 3 is for the schematic flow sheet of iteration refinement method second embodiment of the abstract value of variable in the loop statement of the present invention, and is as shown in the figure, said method comprising the steps of:
Concrete, from the Entry of function, promptly the Func_Head node among Fig. 1 begins to carry out the data stream iteration, is empty between original area, LoopHead is carried out data stream converge In, and behind the arrival L1, the interval becomes { i: [1,1] j: [1,1] }.Because the L5 place did not carry out iteration as yet, this moment, the data steam interval of LoopHead node was { i: [1,1] j: [1,1] }.The LoopHead node is preserved two class intervals all the time; One type is the basis of current iteration, and another kind of is the interval of upgrading after the iteration, and the former is LastDomain; The latter is ThisDomain; Whether change through contrast iteration former and later two intervals, widen or narrow operation, and judge whether iteration should stop.
Concrete, between the original area with LoopHead { i: [1,1] j: [1,1] }, be split as true and false branch according to cycling condition (i<100): really branch into { i: [1,1] j: [1,1] }, false ramification is an empty interval.
Interval { i: [1,1] j: [1, the 1] } merging that obtains interval { i: [2,2] j: [2,2] } and L1 place after the true process L3 of branch, the L4 iteration obtains { i: [1,2] j: [1,2] }, as ThisDomain between this iterative region.
Concrete, LastDomain and ThisDomain are carried out carrying out the Widening operation through widening operator
.Said widening operator is:
If(a2<a1)then?L1=-∞;else?L1=a1;
If(b2>b1)then?L2=+∞;else?L2=b1;
Therefore, LastDomain={i: [1,1] j: [1,1] }, ThisDomain={i: [1,2] j: [1,2] } and, the interval after the two is widened is { i: [1, ∞] j: [1, ∞] }.
Whether step 304, judgement and the interval after LastDomain compares Widening change has taken place; If do not change, represent that then the data stream iteration is stable, gets into step 305 with the interval after LastDomain compares Widening; If compare with LastDomain, the interval behind the Widening changes, and carry out step 309.
Clearly, variation has taken place between the back zone widening operation in this example, therefore carries out the computing of step 309; After LastDomain being updated to { i: [1, ∞] j: [1, ∞] }, get into step 302 iteration once more: according to cycling condition while (i<100); Data stream is { i: [1,99] j: [1, ∞] } in the true branch; Through being updated to { i: [2,100] j: [2, ∞] } after L3, the L4 statement iteration; This iteration result and L1 place are obtained new ThisDomain={i: [1,100] j: [1, ∞] the interval merging }; With LastDomain={i: [1, ∞] j: [1, ∞] } widen operation with it after, obtain new interval and still be { i: [1, ∞] j: [1, ∞] }, the expression iteration is stable, gets into step 305.
Particularly, InterDomain={i: [1, ∞] j: [1, ∞] }.
Particularly, ThisDomain={i: [1,100] j: [1, ∞] }.
Significantly, narrow between the operation back zone variation has taken place, therefore get into step 308.
Step 308 is carried out the Narrowing operation with InterDomain and ThisDomain, and the interval behind the Narrowing is designated as new InterDomain, gets into step 306.
Concrete, InterDomain and ThisDomain are carried out the Narrowing operation through narrowing operator Δ, said narrowing operator Δ is:
[a1,b1]Δ[a2,b2]=[L1,L2]
If(a1=-∞)then?L1=a2;else?L1=MIN(a1,a2);
If(b1=+∞)then?L2=b2;else?L2=MAX(b1,b2);
For example: [∞ ,+∞] Δ [∞, 101]=[∞, 101]
[-∞,101]Δ[0,100]=[0,101]
[0,100]Δ[0,99]=[0,100]
Concrete, the interval { i: [1,100] j: [1, ∞] } after the Narrowing as new InterDomain, is got into step 306; Be split as true and false branch according to cycling condition (i<100): in the true branch, { i: [1,99] j: [1, ∞] } is through obtaining interval { i: [2,100] j: [2, ∞] } after L3, the L4 iteration; The interval merging obtain ThisDomain={i: [1,100] j: [1, ∞] with the L1 place }, InterDomain and ThisDomain are carried out still being { i: [1,100] j: [1, ∞] } between the narrowing back zone that the expression iteration is stable.
Step 309 as new LastDomain, gets into step 302 with the interval behind the Widening.
Exit is that the i during data-flow equations that the Func_Out node obtains is separated is 100, and is in full accord with the exact solution of loop iteration; The interval of j is [1, ∞], separates to some extent with respect to conservative data-flow equations to enlarge.
The real program that so-called exact solution refers to is carried out semantic, and through the procedures of observation segment, the value that withdraws from node i in circulation is 100, and is in full accord with analysis result; And the exact value of j also is 100, but because execution is widened and narrowed computing, has caused loss of significance, and the interval [1, ∞] that therefore finally obtains j is a conservative solution, and promptly it has been magnified to true Program Semantic.
Following table one and table two have provided whole analytical procedure, in order to simplify, only record have been carried out in the interval of variable i in the table, and L3, interval, L4 statement place are for getting the result of the true branch condition computing in L2 place:
(table)
(table two)
Result such as Fig. 4 of the loop iteration refinement that obtains based on above operation are said; Among Fig. 4; The May/Must of hydraulic circulating head node set is the cycling condition in the true and false branch, the variable in other nodes is all related symbol, and this symbol is used for the variable relevant information of calculating process between the reserved area; The 3rd row information is the interval iteration result of each variable.
Cycling condition is positioned at hydraulic circulating head node place, is i<100 in this example.In order to improve the precision of interval analysis, and introduced the symbolic operation system, the back delegation of nodename has promptly represented variable and character expression thereof among the figure; For example; The symbol of i is i_4041 among the while_head_2, and after i++ computing in the loop body, its character expression is updated to 1+i_4041.
Compare with existing simple iterative processing mode, more accurate through separating of technical scheme processing of the present invention back loop iteration.For example; The said procedure segment is carried out the iteration refinement is example, and existing simple iterative processing mode is only according to while (i<100), and the interval of withdrawing from back i that obtains circulating is [100; ∞]; Be [100,100] and use the interval of withdrawing from node i of circulating after technical scheme of the present invention is handled, this routine analysis result is on all four with true Program Semantic.
By on can know that the iteration refinement method of the abstract value of variable not only makes loop statement data stream iteration to restrain fast in the loop statement that the present invention proposes, improve the efficient that the data-flow equations that obtains whole function is separated; And the data-flow equations that obtains is separated more near exact solution, help the circulating inner range of variables inspection and the interval arithmetic of circulation back variable.
The above is merely preferred embodiment of the present invention, is not to be used to limit protection scope of the present invention.
Claims (7)
1. the iteration refinement method of the abstract value of variable in the loop statement is characterized in that said method comprises:
CFG carries out the data stream iteration according to the control flow graph, obtains the interval LastDomain of last iteration;
Carry out the data stream iteration of loop statement piece according to the cycling condition of hydraulic circulating head node LoopHead, obtain ThisDomain between this iterative region;
LastDomain and ThisDomain are widened the Widening operation.
2. method according to claim 1 is characterized in that, saidly carries out the data stream iteration according to CFG, obtains the interval LastDomain of last iteration to be:
Carry out the data stream iteration according to CFG; Obtain the interval of forerunner PostHeadNode of interval and circulation back edge character of direct precursor PreHeadNode of the loop statement of LoopHead, union is got in the interval of the interval of said PreHeadNode and PostHeadNode obtain the interval LastDomain of last iteration.
3. method according to claim 2 is characterized in that, said cycling condition according to LoopHead carries out the data stream iteration of loop statement piece, obtains that ThisDomain does between this iterative region,
Carry out the data stream iteration of loop statement piece according to the cycling condition of LoopHead; Generate the interval of new PostHeadNode; Union is got with new PostHeadNode interval in the interval of the PreHeadNode that last iteration is obtained, obtains ThisDomain between this iterative region.
4. method according to claim 1 is characterized in that, said LastDomain and ThisDomain is carried out after the Widening operation, and this method also comprises:
Judgement when interval after LastDomain compares Widening changes, with the interval behind the Widening as new LastDomain;
Repetition is carried out the data stream iteration of loop statement piece according to the cycling condition of LoopHead, obtains ThisDomain between this iterative region, the step that LastDomain and ThisDomain are carried out the Widening operation.
5. method according to claim 1 is characterized in that, said LastDomain and ThisDomain is carried out after the Widening operation, and this method also comprises:
Judgement does not change with interval after LastDomain compares Widening, and InterDomain between iterative region in the middle of the interval behind the Widening is designated as is as the input that narrows the Narrowing operation;
Carry out the data stream iteration of loop statement piece by cycling condition, obtain ThisDomain between this iterative region;
Whether judgement is compared ThisDomain and is changed with InterDomain, if change, InterDomain and ThisDomain are carried out the Narrowing operation; If do not change, the data stream iteration stops.
6. method according to claim 5 is characterized in that, saidly carries out the data stream iteration of loop statement piece by cycling condition, obtains that ThisDomain is between this iterative region:
Carry out the data stream iteration of loop statement piece by cycling condition, obtain the interval of PreHeadNode and the interval of PostHeadNode, union is got in the interval of the interval of said PreHeadNode and PostHeadNode obtain ThisDomain between this iterative region.
7. method according to claim 5 is characterized in that, said with after InterDomain and the ThisDomain execution Narrowing operation, this method also comprises:
Interval behind the Narrowing is designated as new InterDomain;
Repeat to be undertaken by cycling condition the data stream iteration of loop statement piece, obtain ThisDomain between this iterative region, the step whether ThisDomain changes is compared in judgement with InterDomain.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104001739A CN102495800A (en) | 2011-12-05 | 2011-12-05 | Iterative refinement method for abstractly valuing variables in Do statement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104001739A CN102495800A (en) | 2011-12-05 | 2011-12-05 | Iterative refinement method for abstractly valuing variables in Do statement |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102495800A true CN102495800A (en) | 2012-06-13 |
Family
ID=46187625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104001739A Pending CN102495800A (en) | 2011-12-05 | 2011-12-05 | Iterative refinement method for abstractly valuing variables in Do statement |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102495800A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838571B (en) * | 2013-12-03 | 2017-04-19 | 华为技术有限公司 | Information processing method and device |
CN103294597B (en) * | 2013-05-24 | 2017-05-10 | 浪潮电子信息产业股份有限公司 | Cloud storage node performance standard data generation method |
CN106681786A (en) * | 2017-01-05 | 2017-05-17 | 南京大学 | Method for automatically synthesizing commonly-used cyclic abstracts and generating program specifications |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041315A1 (en) * | 2001-08-21 | 2003-02-27 | International Business Machines Corporation | Debugger with automatic detection of control points influencing program behavior |
CN102073587A (en) * | 2010-12-27 | 2011-05-25 | 北京邮电大学 | Static detection method for inaccessible route in program |
-
2011
- 2011-12-05 CN CN2011104001739A patent/CN102495800A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030041315A1 (en) * | 2001-08-21 | 2003-02-27 | International Business Machines Corporation | Debugger with automatic detection of control points influencing program behavior |
CN102073587A (en) * | 2010-12-27 | 2011-05-25 | 北京邮电大学 | Static detection method for inaccessible route in program |
Non-Patent Citations (1)
Title |
---|
刘莉 等: "提高区间运算的循环处理精度", 《清华大学学报(自然科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294597B (en) * | 2013-05-24 | 2017-05-10 | 浪潮电子信息产业股份有限公司 | Cloud storage node performance standard data generation method |
CN103838571B (en) * | 2013-12-03 | 2017-04-19 | 华为技术有限公司 | Information processing method and device |
CN106681786A (en) * | 2017-01-05 | 2017-05-17 | 南京大学 | Method for automatically synthesizing commonly-used cyclic abstracts and generating program specifications |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fan et al. | DryVR: Data-driven verification and compositional reasoning for automotive systems | |
CN101436128B (en) | Software test case automatic generating method and system | |
Kwon et al. | Mantis: Automatic performance prediction for smartphone applications | |
CN105893256A (en) | Software failure positioning method based on machine learning algorithm | |
CN102662644A (en) | Method for generating test case by using flow chart | |
CN102110051A (en) | Static defect detection method of application program slicing technology | |
CN102073588A (en) | Code static analysis based multithread deadlock detection method and system | |
Mossige et al. | Testing robot controllers using constraint programming and continuous integration | |
CN104536883A (en) | Static defect detecting method and system thereof | |
CN103714000A (en) | Sensitive area-oriented embedded software test case generating method | |
CN103246770A (en) | Activity graph model based system behavior simulation method | |
CN108763064A (en) | A kind of code tester generation method and device based on black box function and machine learning | |
Laurent | Using formal methods and testability concepts in the avionics systems validation and verification (v&v) process | |
CN102495800A (en) | Iterative refinement method for abstractly valuing variables in Do statement | |
CN103778062A (en) | Multi-interrupt routine data access conflict detection method based on abstract interpretation | |
CN106529304B (en) | A kind of Android applies concurrent leakage location | |
CN101710303B (en) | Memory leakage detecting method based on flow sensitivity and context sensitivity directing picture | |
Tao et al. | An approach to regression test selection based on hierarchical slicing technique | |
CN104750608A (en) | Automatic error locating method based on dynamic symbol operation in procedure | |
CN102495796A (en) | Software vulnerability test method based on unit testing | |
CN102508766A (en) | Static analysis method of errors during operation of aerospace embedded C language software | |
Djanatliev et al. | Veritas-a versatile modeling environment for test-driven agile simulation | |
CN104615535B (en) | Method and device for generating test case based on extended data flow model | |
CN107391124B (en) | Conditional slicing method based on golden section search and software execution track | |
CN109002723A (en) | A kind of segmented symbolic excution methodology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120613 |