CN104317773A - Static estimation method for maximum execution frequency and maximum execution depth of recursion - Google Patents

Static estimation method for maximum execution frequency and maximum execution depth of recursion Download PDF

Info

Publication number
CN104317773A
CN104317773A CN201410589530.4A CN201410589530A CN104317773A CN 104317773 A CN104317773 A CN 104317773A CN 201410589530 A CN201410589530 A CN 201410589530A CN 104317773 A CN104317773 A CN 104317773A
Authority
CN
China
Prior art keywords
recurrence
function
condition
depth
recursion
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.)
Granted
Application number
CN201410589530.4A
Other languages
Chinese (zh)
Other versions
CN104317773B (en
Inventor
汤恩义
刘璐
方园
李宣东
冯世宁
张庆垒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201410589530.4A priority Critical patent/CN104317773B/en
Publication of CN104317773A publication Critical patent/CN104317773A/en
Application granted granted Critical
Publication of CN104317773B publication Critical patent/CN104317773B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

The invention provides a static estimation method for maximum execution frequency and maximum execution depth of recursion. The static estimation method includes: positioning a recursion action scope by means of scanning program source codes statically and collecting function call and return execution conditions in recursion; then, introducing a satisfiability modulo solver to solve collected sign condition restrictions; finally, obtaining estimation results directly. Since repeated execution of a program is avoided, the static estimation method is more efficient, more accurate and the like as compared with a traditional dynamic estimation method. Program design, development and maintenance personnel can apply the analyzed results to the technical field of computer applications such as performance optimization, energy consumption estimation, real-time analysis and the like.

Description

The static estimation method of the maximum execution frequency of a kind of recurrence and the degree of depth
Technical field
The invention belongs to computer program analysis application, relate to technology such as utilizing static program analysis, satisfiability mould constraint solves, Efficient Solution program recurrence maximum execution frequency and the maximum execution degree of depth, thus carry out program optimization for the personnel of designing and developing, energy consumption is estimated, time series analysis etc. provide foundation, are a kind of static estimation method of program recurrence maximum execution frequency and the maximum execution degree of depth.
Background technology
Recurrence, as a kind of algorithm design thought, is widely used in program design and development.It is large that recurrence in actual industrial program has execution density, and take the features such as execution time length, to the execution efficiency of program, performance and the handling capacity of computing machine have material impact.Therefore, the maximum execution frequency of recurrence action scope and the degree of depth are program optimizations, time series analysis, the important indicator that the fields such as system energy consumption analysis are paid close attention to.
Existing recurrence performs frequency and depth estimation method generally adopts dynamic testing method, is performed program repeat by generating test use case, obtains execution frequency that recurrence action scope may reach and performs the degree of depth.Such method has following deficiency: 1. detection efficiency is not high: because dynamic approach needs executive routine repeatedly, therefore needs certain execution amount the corresponding index of be concerned about recurrence action scope just can be detected; 2. testing result accuracy is inadequate: because dynamic testing method depends on test case, and when the coverage of test case is inadequate, the recurrence action scope do not covered cannot obtain testing result; Even if the recurrence that test case can cover, be also difficult to ensure that test case can make recurrence perform maximum frequency and the degree of depth.
In recent years, the symbol constraint solving ability of computer automation promotes greatly, for automatically Static Detection recurrence execution frequency and the degree of depth providing possibility.The present invention is based on the satisfiability theory of modules, by static collection and the recursive symbol executive condition solving different depth and frequency, obtain recurrence can in program performs the maximum execution frequency that reach and depth information, testing result comparatively accurately can be reached within less computing time.
The satisfiability theory of modules is the logical formula decision theory grown up on the basis of first-order predicate logic equation in computer science, is mainly used in judging whether first order logic formula can be satisfied.Practical problems due to many fields finally can be summed up as satisfiability theory of modules problem (the Plantation and privilege problem etc. in the Formal Verification problem of such as software and hardware, the automatic vector test generation of circuit, artificial intelligence), and the satisfiability theory of modules is subject to the extensive concern of calculating mechanism public opinion-medium in recent years.Nearly three kinds of now widely used satisfiability theory of modules method for solving: first method converts first-order predicate logic formula to more simple Boolean formulas, then solves the satisfiability of Boolean formulas on this basis; Second method is divided into special theoretical territory by needing the content solved according to its characteristic, and solves respectively in each theoretical territory; Solving of this problem is summed up in the point that in a kind of searching algorithm framework based on backtracking by the third method, and by replacement theory territory, and reach the object of efficient satisfiability solving.Through researcher's effort for many years, satisfiability theory of modules derivation algorithm obtains continuous improvement and perfection, can solve problem larger in practical application.The present invention utilizes the satisfiability theory of modules to carry out the static executive condition constraint solving recurrence action scope, thus realizes the static estimation of recurrence maximum execution frequency and the maximum execution degree of depth.
Summary of the invention
Technical matters: the static estimation method that the present invention proposes a kind of recurrence maximum execution frequency and the maximum execution degree of depth, the method does not need executive routine repeatedly, namely can estimate the maximum execution frequency of program recurrence and the maximum execution degree of depth comparatively accurately.
Technical scheme: the static estimation method of the maximum execution frequency of a kind of recurrence of the present invention and the degree of depth, the recursion paths condition of collection procedure is carried out by the method for static program analysis, and use the satisfiability theory of modules to solve this recursion paths condition, thus can the maximum execution degree of depth of recurrence action scope in the estimation routine of efficiently and accurately, and the maximum execution frequency of each recursive function in action scope, concrete steps are:
1-1), the recurrence action scope that the loop technology of searching based on calling graph is come in trace routine is used, detected recurrence action scope is a function set, each function in set calls mutually, and form recurrence, in testing process, use strong continune assembly expansion technique to expand the loop of calling graph, thus ensure that obtained function set comprises each function in current recursion action scope;
1-2), respectively analytical procedure 1-1) each recurrence action scope of obtaining, in collecting action territory, each recursive function calls the branch condition and path condition that return with recursive function, and the Call Condition of identical recursive function and the condition that returns are merged, store, for step 1-3 as sign condition constraint) comprehensively solve;
1-3), each recurrence action scope is put back in original program carry out comprehensive analyze and solving, namely in original program, try to achieve the Initial Entry condition of each recurrence action scope, and according to this entry condition and step 1-2) sign condition that provides retrains and comprehensively builds the different actual recurrence performing the degree of depth and execution frequency and perform constraint, final utilization satisfiability mould solver is to the recurrence execution constraint solving of these reality.By attempting strategy in conjunction with different depths of recursion and frequency, solver can estimate the actual maximum execution frequency that reaches of recurrence and the degree of depth.
Described step 1-1) in use strong continune assembly expansion technique to expand the recursive detection method in the loop of calling graph, make obtained function set must comprise each function in current recursion action scope, specific as follows:
2-1), conventionally calling graph is built by program source code, calling graph is a digraph being used for representation program call relation, each directed edge (f in figure, g) existence function f is represented in program to the call relation of function g, therefore, any loop on calling graph shows existence function recurrence relation in a program;
2-2), the loop in calling graph is searched, concrete grammar is in order from the node in calling graph, attempt whether can getting back to present node along the directed edge in figure, by continuous iteration, algorithm can travel through possibilities all in calling graph and find loop, or there is not loop in proof figure;
2-3), in step 2-2) find loop after, use the loop of strong continune assembly expansion algorithm expansion in calling graph, thus ensure that the recurrence action scope complete packet found contains all related functions, namely when there is sub-recursive loop in recurrence action scope, what the guarantee of this algorithm was found is whole recurrence action scope, by step 2-1) calling graph that generates iterates step 2-2) and step 2-3), all recurrence action scopes in program can be obtained.
The described method by static program analysis carrys out the recursion paths condition of collection procedure, so that follow-up step solves maximum execution frequency and the degree of depth of recurrence further, step 2-1) to step 2-3) detect the set f that the recurrence action scope obtained is marked as a program function 1, f 2..., f n, this n function can, by mutually calling and forming recurrence, distinguishingly, if only there is single function to participate in recurrence, then n=1, collect each recursive condition on this basis, and the concrete steps building symbol constraint be as follows:
3-1), for each recursive function f of each recurrence action scope i, scan its source code, locate its all function outlets and function home position, and namely recursive function calling station call the function f in current recursion action scope jposition;
3-2), analysis recursion function f ito the path of its inner each recursive call function outlet, and use the branch condition on constraint gatherer collection path, each branch condition on each paths is merged as whole path condition by logic conjunction expression;
3-3), for recursive function f iin allly call recursive function f jthe path condition in different paths, will merge by logical disjunct formula, be designated as constraint c i,j; And for recursive function f iarrive the path condition of all outlet ports, also press logical disjunct formula and merge, be designated as constraint c ' i; These constraint information will be used for the constraint solving of subsequent step.
Use the satisfiability theory of modules to solve this recursion paths condition, detailed process is as follows:
4-1), first will from program entry, the entrance of each recurrence action scope is found along program control flow, and path analysis obtains the starting condition of current recursion action scope thus, so that integrating step 3-3) constraint build present procedure in the concrete physical constraint condition performing a certain depth of recursion or frequency;
That 4-2), determines a satisfiability theory of modules according to stepping type strategy solves checking target, namely with depth of recursion p for target, or with the execution frequency q of a certain recursive function for target, and inwardly build invoked procedure chain according to this target from recurrence action scope entrance, at integrating step 4-1) recurrence starting condition and step 3-3) constraint basis on, according to invoked procedure chain generate checking target practical combinations constraint condition;
4-3), by step 4-2) the practical combinations constraint condition that generates converts the solution formula of satisfiability mould to, and transfer to solver to solve, solving result has two kinds of possibilities: when solving result is current formula true time, namely conditions present can meet, represent current recursion depth capacity >=p, or the execution frequency >=q of a certain recursive function, in this case, if do not know the upper bound of recurrence depth capacity or maximum execution frequency, then attempt larger p or q with stepping type strategy, when solving result is false, conditions present can not meet, represent that the depth capacity of current recursion does not necessarily reach p or performs frequency < q, now p or q is the upper bound of checking target, continuation is attempted less p or q in the mode of binary chop by this method, iteration is until meet p-1≤recurrence depth capacity < p or q-1≤recursive function maximum execution frequency < q, because desired value is integer, so we can obtain recurrence maximum depth value=p-1 or the maximum execution frequency value=q-1 of recursive function at this moment.
Beneficial effect: program recurrence maximum execution frequency described in the invention and the static estimation method of the maximum execution degree of depth, by static scanning program source code under the situation of not executive routine, the maximum execution frequency of each recursive function and the maximum execution degree of depth of recurrence itself in solver recurrence can be come.There is following beneficial effect specifically:
1., with respect to the conventional dynamic method of testing that generating test use case performs program repeat, static estimation method provided by the present invention more can obtain maximum execution frequency and the degree of depth of program recurrence efficiently and accurately.The present invention uses satisfiability mould solver to carry out the constraint condition of direct solution program recurrence on the one hand, avoids executive routine repeatedly, thus makes this method can reach target more fast; On the other hand, do not rely on test case due to this method, and obtain result with solving of logical symbol condition, thus obtained result is more more accurate than classic method.
2. the maximum execution frequency of recurrence that generates of the present invention and the degree of depth have accessibility, and namely inevitable at least exist a program input, and when with this input executive routine, the recurrence in program can reach the degree of depth of estimation or perform frequency.Because the present invention uses satisfiability mould solver to carry out the constraint condition of solver recurrence, when condition can meet, solver can export the concrete input value meeting conditions present, therefore, can ensure the accessibility of estimated result during this input value working procedure.
3. the present invention obtain program recurrence maximum execution frequency and the degree of depth there is important using value.Because recurrence action scope is that actual industrial program middle-high density performs district, the maximum execution frequency of analysis recursion and the degree of depth contribute to helping developer location to be hot-spots with analysis, so that it is optimized and energy consumption analysis program further.In addition, program recurrence frequency provided by the present invention and depth estimation method can the combined effects of multiple recurrence action scope in routine analyzer, and this can help the design and development personnel of industrial control program to carry out real time analysis.
Accompanying drawing explanation
Fig. 1 is the main-process stream of the maximum execution frequency of recurrence and degree of depth static estimation.
Fig. 2 is the testing process of recurrence action scope.
Fig. 3 is that flow process is collected in the symbol constraint of recurrence action scope inside.
Fig. 4 is that program recurrence combination constraint is collected and solves flow process.
Embodiment
The present invention proposes the method for the maximum execution frequency of a kind of static analyzer recurrence action scope and the degree of depth, the method is detected and the related symbol constraint collecting recurrence action scope by scanning sequence source code, and introduce satisfiability mould solver to solve constraint, thus obtain objective result.Do further to describe with regard to some details in implementation process with lower part:
One, the construction strategy such as formula strategy are recalled about stepping type strategy and two points
Solving result due to satisfiability mould solver is a Boolean, namely only can obtain conditions present whether can meet, therefore, obtain the maximum frequency of recurrence and the degree of depth, we also need the condition constructor that structure one is relevant to frequency and depth value, carry out work with auxiliary satisfiability mould solver.By constantly attempting different recurrence frequency or whether the degree of depth can meet, we can obtain the maximum recurrence frequency that can be met by conditions present or depth value.Construction strategy target designed by the present invention is to make satisfiability mould solver find objective result by the least possible number of attempt, this strategy is duplicate for searching for the process of the maximum frequency of recurrence and the degree of depth, describes construction strategy here for recurrence depth capacity p.
First the initial value p introducing p is needed 0, in actual industrial uses the inventive method, rule of thumb can estimating that the probable value of a recurrence depth capacity is used as the initial value of p, when not having experience to instruct completely, random integers can be adopted to be used as the initial value p of p 0.
When the solving result of satisfiability mould solver is true time, represent p>=p 0, at this moment we get the lower bound of a p, and do not know the upper bound of p, then attempt next time, adopt p 1=2 × p 0.In fact, when we do not know the upper bound of p time, then attempt the twice of getting last sub-value each time, i.e. p i+1=2 × p i, the upper bound of p can be navigated to sooner.The process that recursion finds the upper bound of p so is layer by layer called as stepping type strategy in the present invention.
When at certain p itrial in, the solving result of satisfiability mould solver is fictitious time, namely represents p<p i, at this moment we have got the upper bound of p, due to p lower bound natively known (taking off boundary under unknown situation is 0), thus the process of searching p is just converted into binary search process.Namely the upper bound of known p is p u, lower bound is p b, then trial value is next time the intermediate value of bound if the result of solver is true, then use p i+1replace p b, otherwise replace p uiterate, until p u=p bwhen+1, algorithm stops, and at this moment obtains p=p b.
This process is called as two points of backtracking formula strategies in the present invention.
Two, the closed-loop path searching algorithm of calling graph
Present invention employs a kind of greedy algorithm based on function call graph and carry out recurrence action scope in trace routine.Specifically, at a calling graph g cin, the function in each node on behalf program or process, and each directed edge (being designated as i, j) from node i to node j represents that one from process i calling to process j.When we use N cand E crepresent calling graph g cset of node and directed edge collection time, closed-loop path searching algorithm is described below:
2-2-1), at calling graph g cmiddle sign reachable set E ' c.By E ' cinitial value be set to E c, then travel through E ' cin each limit, when there is end to end two limits, such as i, k ∈ E ' c∧ k, j ∈ E ' ctime, illustrate that node i can reach to node j, then by reachability relation i, j also joins E ' cin.
2-2-2), iterate step 2-2-1) until calling graph g cin all reachability relation all by E ' cdemarcate.Then set N is corresponded to cin each node k, check reachability relation k, whether k at reachable set E ' cin, if at reachable set E ' cin, then show calling graph g cin certainly exist one finally arrives node k loop from node k.Thus node k can be exported to strong continune assembly expansion algorithm to obtain strong continune assembly corresponding to current loop.
Three, strong continune assembly expansion algorithm
In order to comparatively comprehensively process has more general mutual recurrence, the present invention is after finding the loop in calling graph, have employed strong continune assembly expansion algorithm and loop is expanded to strong continune assembly in calling graph, thus avoid and directly use calling graph loop may get the problem of the sub-loop in nested recurrence action scope.Strong continune assembly in digraph refers to the subgraph in this digraph, and requires that in subgraph, arbitrary node can arrive other arbitrary nodes in subgraph along directed edge.
Present invention employs an algorithm that can reach traversal search and become a strong continune assembly S to the loop expanded in calling graph, specific algorithm is as follows:
2-3-1), first strong continune assembly S is emptied.
2-3-2), from step 2-2-2) obtain calling graph g cloop node k, node k is added S.Along this loop node k, from reachable set E ' cthe all node h that can be arrived by node k of middle traversal, namely require (k, h) ∈ E ' c.
2-3-3), by reachable set E ' ccheck whether node h can arrive node k, if i.e. (h, k) ∈ E ' c, then node h is added S.
2-3-4), all E ' are traveled through cthe limit that interior joint k sets out, all adds S by the node satisfied condition, the strong continune assembly that S is namely required.Thus we have:
&ForAll; h , ( k , h ) &Element; E &prime; C &Lambda; ( h , k ) &Element; E &prime; C &RightArrow; S = S &cup; { h }

Claims (4)

1. the static estimation method of the maximum execution frequency of recurrence and the degree of depth, it is characterized in that the recursion paths condition being carried out collection procedure by the method for static program analysis, and use the satisfiability theory of modules to solve this recursion paths condition, thus can the maximum execution degree of depth of recurrence action scope in the estimation routine of efficiently and accurately, and the maximum execution frequency of each recursive function in action scope, concrete steps are:
1-1), the recurrence action scope that the loop technology of searching based on calling graph is come in trace routine is used, detected recurrence action scope is a function set, each function in set calls mutually, and form recurrence, in testing process, use strong continune assembly expansion technique to expand the loop of calling graph, thus ensure that obtained function set comprises each function in current recursion action scope;
1-2), respectively analytical procedure 1-1) each recurrence action scope of obtaining, in collecting action territory, each recursive function calls the branch condition and path condition that return with recursive function, and the Call Condition of identical recursive function and the condition that returns are merged, store, for step 1-3 as sign condition constraint) comprehensively solve;
1-3), each recurrence action scope is put back in original program carry out comprehensive analyze and solving, namely in original program, try to achieve the Initial Entry condition of each recurrence action scope, and according to this entry condition and step 1-2) sign condition that provides retrains and comprehensively builds the different actual recurrence performing the degree of depth and execution frequency and perform constraint, final utilization satisfiability mould solver is to the recurrence execution constraint solving of these reality.By attempting strategy in conjunction with different depths of recursion and frequency, solver can estimate the actual maximum execution frequency that reaches of recurrence and the degree of depth.
2. the static estimation method of the maximum execution frequency of a kind of recurrence according to claim 1 and the degree of depth, it is characterized in that described step 1-1) in use strong continune assembly expansion technique to expand the recursive detection method in the loop of calling graph, make obtained function set must comprise each function in current recursion action scope, specific as follows:
2-1), conventionally calling graph is built by program source code, calling graph is a digraph being used for representation program call relation, each directed edge (f in figure, g) existence function f is represented in program to the call relation of function g, therefore, any loop on calling graph shows existence function recurrence relation in a program;
2-2), the loop in calling graph is searched, concrete grammar is in order from the node in calling graph, attempt whether can getting back to present node along the directed edge in figure, by continuous iteration, algorithm can travel through possibilities all in calling graph and find loop, or there is not loop in proof figure;
2-3), in step 2-2) find loop after, use the loop of strong continune assembly expansion algorithm expansion in calling graph, thus ensure that the recurrence action scope complete packet found contains all related functions, namely when there is sub-recursive loop in recurrence action scope, what the guarantee of this algorithm was found is whole recurrence action scope, by step 2-1) calling graph that generates iterates step 2-2) and step 2-3), all recurrence action scopes in program can be obtained.
3. the static estimation method of the maximum execution frequency of a kind of recurrence according to claim 1 and the degree of depth, it is characterized in that the recursion paths condition being carried out collection procedure by the method for static program analysis, so that follow-up step solves maximum execution frequency and the degree of depth of recurrence further, step 2-1) to step 2-3) detect the set { f that the recurrence action scope obtained is marked as a program function 1, f 2..., f n, this n function can, by mutually calling and forming recurrence, distinguishingly, if only there is single function to participate in recurrence, then n=1, collect each recursive condition on this basis, and the concrete steps building symbol constraint be as follows:
3-1), for each recursive function f of each recurrence action scope i, scan its source code, locate its all function outlets and function home position, and namely recursive function calling station call the function f in current recursion action scope jposition;
3-2), analysis recursion function f ito the path of its inner each recursive call function outlet, and use the branch condition on constraint gatherer collection path, each branch condition on each paths is merged as whole path condition by logic conjunction expression;
3-3), for recursive function f iin allly call recursive function f jthe path condition in different paths, will merge by logical disjunct formula, be designated as constraint c i, j; And for recursive function f iarrive the path condition of all outlet ports, also press logical disjunct formula and merge, be designated as constraint c ' i; These constraint information will be used for the constraint solving of subsequent step.
4. the static estimation method of the maximum execution frequency of a kind of recurrence according to claim 1 and the degree of depth, it is characterized in that using the satisfiability theory of modules to solve this recursion paths condition, detailed process is as follows:
4-1), first will from program entry, the entrance of each recurrence action scope is found along program control flow, and path analysis obtains the starting condition of current recursion action scope thus, so that integrating step 3-3) constraint build present procedure in the concrete physical constraint condition performing a certain depth of recursion or frequency;
That 4-2), determines a satisfiability theory of modules according to stepping type strategy solves checking target, namely with depth of recursion p for target, or with the execution frequency q of a certain recursive function for target, and inwardly build invoked procedure chain according to this target from recurrence action scope entrance, at integrating step 4-1) recurrence starting condition and step 3-3) constraint basis on, according to invoked procedure chain generate checking target practical combinations constraint condition;
4-3), by step 4-2) the practical combinations constraint condition that generates converts the solution formula of satisfiability mould to, and transfer to solver to solve, solving result has two kinds of possibilities: when solving result is current formula true time, namely conditions present can meet, represent current recursion depth capacity >=p, or the execution frequency >=q of a certain recursive function, in this case, if do not know the upper bound of recurrence depth capacity or maximum execution frequency, then attempt larger p or q with stepping type strategy, when solving result is false, conditions present can not meet, represent that the depth capacity of current recursion does not necessarily reach p or performs frequency < q, now p or q is the upper bound of checking target, continuation is attempted less p or q in the mode of binary chop by this method, iteration is until meet p-1≤recurrence depth capacity < p or q-1≤recursive function maximum execution frequency < q, because desired value is integer, so we can obtain recurrence maximum depth value=p-1 or the maximum execution frequency value=q-1 of recursive function at this moment.
CN201410589530.4A 2014-10-28 2014-10-28 Static estimation method for maximum execution frequency and maximum execution depth of recursion Active CN104317773B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410589530.4A CN104317773B (en) 2014-10-28 2014-10-28 Static estimation method for maximum execution frequency and maximum execution depth of recursion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410589530.4A CN104317773B (en) 2014-10-28 2014-10-28 Static estimation method for maximum execution frequency and maximum execution depth of recursion

Publications (2)

Publication Number Publication Date
CN104317773A true CN104317773A (en) 2015-01-28
CN104317773B CN104317773B (en) 2017-05-24

Family

ID=52373006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410589530.4A Active CN104317773B (en) 2014-10-28 2014-10-28 Static estimation method for maximum execution frequency and maximum execution depth of recursion

Country Status (1)

Country Link
CN (1) CN104317773B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589730A (en) * 2015-12-29 2016-05-18 东南大学 Pointer analysis method based on offline constraint graph

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963739A (en) * 1996-04-26 1999-10-05 Peter V. Homeier Method for verifying the total correctness of a program with mutually recursive procedures
CN101364203A (en) * 2008-09-19 2009-02-11 南京大学 Systems analysis and dividing method orienting covert channel analysis
US20090276763A1 (en) * 2008-05-05 2009-11-05 Microsoft Corporation Bounding Resource Consumption Using Abstract Interpretation
CN102012833A (en) * 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 Compilation process intermediate result-based static stack detection method
CN102034042A (en) * 2010-12-13 2011-04-27 四川大学 Novel unwanted code detecting method based on characteristics of function call relationship graph
CN103559069A (en) * 2013-11-18 2014-02-05 中国科学院声学研究所 Cross-file interprocedural optimization method based on algebraic system
CN104035773A (en) * 2014-06-11 2014-09-10 清华大学 Extension call graph based software system node importance evaluation method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963739A (en) * 1996-04-26 1999-10-05 Peter V. Homeier Method for verifying the total correctness of a program with mutually recursive procedures
US20090276763A1 (en) * 2008-05-05 2009-11-05 Microsoft Corporation Bounding Resource Consumption Using Abstract Interpretation
CN101364203A (en) * 2008-09-19 2009-02-11 南京大学 Systems analysis and dividing method orienting covert channel analysis
CN102012833A (en) * 2010-11-09 2011-04-13 北京神舟航天软件技术有限公司 Compilation process intermediate result-based static stack detection method
CN102034042A (en) * 2010-12-13 2011-04-27 四川大学 Novel unwanted code detecting method based on characteristics of function call relationship graph
CN103559069A (en) * 2013-11-18 2014-02-05 中国科学院声学研究所 Cross-file interprocedural optimization method based on algebraic system
CN104035773A (en) * 2014-06-11 2014-09-10 清华大学 Extension call graph based software system node importance evaluation method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
汤恩义 等: "面向维护的实时软件时间变化敏感点检测", 《计算机学报》 *
王锦标 等: "图形组态软件中的递归式回路识别方法", 《冶金自动化》 *
计卫星 等: "多线程程序堆栈深度分析与计算方法", 《中国科技论文在线》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589730A (en) * 2015-12-29 2016-05-18 东南大学 Pointer analysis method based on offline constraint graph
CN105589730B (en) * 2015-12-29 2018-08-28 东南大学 A kind of pointer analysis method based on offline constraints graph

Also Published As

Publication number Publication date
CN104317773B (en) 2017-05-24

Similar Documents

Publication Publication Date Title
CN103257921B (en) Improved random forest algorithm based system and method for software fault prediction
CN103116540B (en) Dynamic symbol execution method based on global superblock domination graph
CN107665172B (en) Software defect prediction method based on complex weighted software network
CN101697121A (en) Method for detecting code similarity based on semantic analysis of program source code
CN110705078B (en) Simulation model development system and analysis method of nuclear power plant
CN108304317B (en) Single-process program static slicing method and system based on path execution frequency
Orouji et al. Flood routing in branched river by genetic programming
CN105183796A (en) Distributed link prediction method based on clustering
CN105138600B (en) Based on the matched social network analysis method of graph structure
CN107330589A (en) Satellite network coordinates the quantitative evaluation method and system of risk
CN104133766B (en) Software system maintainability based on multiple target community discovery assessment and method for improving
Bobot et al. A simplex-based extension of Fourier-Motzkin for solving linear integer arithmetic
Kshemkalyani et al. Dispersion of mobile robots in the global communication model
CN114385397A (en) Micro-service fault root cause positioning method based on fault propagation diagram
Zeng et al. Gcn2defect: Graph convolutional networks for smotetomek-based software defect prediction
CN108984830A (en) A kind of building efficiency evaluation method and device based on FUZZY NETWORK analysis
CN112364352A (en) Interpretable software vulnerability detection and recommendation method and system
CN103678123B (en) One is applicable to processor system single-particle soft error tender spots recognition methods
CN102496033B (en) Image SIFT feature matching method based on MR computation framework
CN104915680A (en) Improved RBF neural network-based multi-label metamorphic relationship prediction method
CN104317773A (en) Static estimation method for maximum execution frequency and maximum execution depth of recursion
Zhang et al. Root cause analysis of concurrent alarms based on random walk over anomaly propagation graph
Han et al. Overlapping decomposition for causal graphical modeling
CN115795122B (en) Urban drainage pipe network topological relation carding method
CN117725592A (en) Intelligent contract vulnerability detection method based on directed graph annotation network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant