CN100559347C - A kind of recognition methods of nested loop structure - Google Patents

A kind of recognition methods of nested loop structure Download PDF

Info

Publication number
CN100559347C
CN100559347C CNB2007100900039A CN200710090003A CN100559347C CN 100559347 C CN100559347 C CN 100559347C CN B2007100900039 A CNB2007100900039 A CN B2007100900039A CN 200710090003 A CN200710090003 A CN 200710090003A CN 100559347 C CN100559347 C CN 100559347C
Authority
CN
China
Prior art keywords
node
loop
flow graph
descendant
hydraulic circulating
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.)
Expired - Fee Related
Application number
CNB2007100900039A
Other languages
Chinese (zh)
Other versions
CN101271397A (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.)
Peking University
Original Assignee
Peking 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 Peking University filed Critical Peking University
Priority to CNB2007100900039A priority Critical patent/CN100559347C/en
Publication of CN101271397A publication Critical patent/CN101271397A/en
Application granted granted Critical
Publication of CN100559347C publication Critical patent/CN100559347C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention belongs to reverse-engineering and process analysis field, be specifically related to a kind of method of discerning loop structure executable file is carried out dis-assembling, obtain the intermediate code of this executable file; From above-mentioned intermediate code, extract the control stream information, controlled flow graph; Depth-first traversal control flow graph, the identification cyclic node; The innermost loop head node of flag node; The control flow graph of correspondence is identified as loop structure.The present invention can effectively judge loop structure, and the nest relation between them, and then resulting structure programmed control flow graph.Can be used in the equipment such as decompiling, software test.

Description

A kind of recognition methods of nested loop structure
Technical field
The invention belongs to reverse-engineering and process analysis field, be specifically related to a kind of method of discerning nested loop structure, can be used in the equipment such as decompiling, software test, can be effectively with the program control flow graph structureization.
Background technology
Decompiling is from the technology of executable file acquisition with the high-level code of source program equivalence, is one of the core technology in reverse-engineering field, plays an important role in different applications.At first, inverse compiling technique is mainly used in auxiliary routine and transplants, as program is moved to third-generation computer from second-generation computer; To the seventies and the eighties, inverse compiling technique begins to be used to reengineering (Re-engineering), comprises losing source code or third-party binary program is understood, documenting, reconstruct and modification; Since the middle and later periods nineties, information security field has had huge application demand to inverse compiling technique, such as excavating work such as software security flaw, analysis Malware, all inverse compiling technique is had very high dependence.
Control flow analysis is the important research field in the decompiling, and the identification of compound condition branch, nested loop identification and multiple branches (switch) identification are wherein most important three control structure identification problems, also are one of core technologies of decompiling robotization.If can not accurately discern this three kinds of control structures, the seriously development of restriction inverse compiling technique, the restriction inverse compiling technique is in the application in other field.The present invention pays close attention to the identification of loop structure in the control flow analysis.
Circulation is the control structure that is used for realizing repetitive instruction.In the control flow graph, it is inner that circulation often is nested in other circulation.This phenomenon has produced the structure that is known as " loop nesting forest ".Although the programmed method of modern program utilization structureization, but when high-level language programs has been compiled into after the binary program, loop structure wherein is (break statement for example usually because inner multilayer nest round-robin jump instruction, continue statement and return statement etc.), the structuring characteristic of its single inlet has been suffered destruction, no longer meet the structuring principle, promptly the control flow graph of its correspondence can not stipulations.Being illustrated in figure 1 as one typically can not stipulations round-robin control flow graph.Fig. 2 be it pairing " loop nesting forest ".
The identification of nested loop is the inverse proposition of the compiling problem of loop statement in the structured programming language.Be exactly how to discern the scope of the loop structure in the binary program and the nest relation between them, thereby the high-level language programs structure that decompiling is generated still keep structuring characteristic preferably.If can not accurately discern the scope of loop structure and the nest relation between them, then may have influence on the accuracy and the structuring characteristic of the meaning of one's words of the final source program that generates of decompiling.
Research to circulation identification starts from 1970, F.E.Allen and J.Cocke have proposed the reducibility of control chart (referring to F.E.Allen.Control flow analysis.SIGPLAN Notices, 5 (7) 1:19,1970), after this work in compiling and decompiling field all begins to pay close attention to this problem.
1997, P.Havlak at R.E.Tarjan (referring to R.E.Tarjan, Testing flow graph reducibility, J.Comput.Syst.Sci.9,1974) proposed on the basis to the approximately linear time of routine control flow graph algorithm (referring to P.Havlak, Nesting of reducible and irreducible loops, ACM Transactions on Programming Languages andSystems, Vol.19, No.4,1997).
G.Ramalingam has proposed to improve algorithm (referring to G.Ramalingam to one of the Havlak algorithm after 2 years, Identifying loops in almost linear time, ACM Transactions on Programming Languages andSystems, Vol.21, No.2,1999), the algorithm of approximately linear time (but slower than Havlak algorithm under regular situation) under worst condition.
Said method is usually based on complex data structures, Interval/DSG for example, and perhaps UNION-FIND set makes that to the complex operations of these data acquisitions the efficient of these algorithms is very low.
The present invention proposes a kind of in binary executable identification round-robin new method, this method only need to the control flow graph carry out a depth-first search just can handle accurately can not reduction the control flow graph, and do not need complex data structures.This method is analyzed a plurality of typical executable file under Windows XP and the linux, and experiment shows this method approximately linear time, and than the algorithm of Havlak fast 2~5 times.
Summary of the invention
The object of the present invention is to provide a kind of method of the identification that circulates, can be accurately, efficient, robotization discerns loop structure.For clear and definite content of the present invention and convenient statement, provide the suitable explanation of circulation and related notion below.(referring to S.S.Muchnick, Advanced Compiler Design and Implementation, Elsevier Science (USA), 1997.P.Havlak, Nestingof reducible and irreducible loops, ACM Transactions on Programming Languages and Systems, Vol.19, No.4,1997.).
Control flow graph (CFG): the connected digraph of describing the control stream information of program; Usually with (N, E represent that h) wherein N is the set of fundamental block in the program, and E is the directed edge between these fundamental blocks, and h is the inlet of program.
Strong connected domain (SCR): S ⋐ N The nonempty set of node; Given any q, r ∈ S exists path from q to r and the path from r to q.When there is not attribute in a SCR is that the superset of SCR is fashionable, claims that it is maximum SCR.
Circulation: comprise outermost loop and inner loop.
Outermost loop: a maximum SCR who comprises an internal edges at least.
Hydraulic circulating head node and loop body: in depth-first search, first cyclic node that has access to is called the hydraulic circulating head node, and remaining node is called loop body.
Maximum outer circulation: being nested among the circulation L and with h is that the nested loop of head node is maximum outer circulation that be the subgraph of node set with (L-{h}).
Reentry mouth and reentry limit: the circulation L that a given hydraulic circulating head is h and a limit<q, r 〉, q ∉ L , R ∈ L-{h}, r are called this round-robin and reentry mouthful<q, r〉be called the reentry limit.
Innermost loop: a node n in the loop body, its innermost loop is the minimal circulation that comprises n.
The hydraulic circulating head of the innermost loop of innermost loop head: n is called the innermost loop head of n.
The hydraulic circulating head tabulation of hydraulic circulating head tabulation: n comprises the innermost loop h of n 1, h 1An innermost loop h 2, h 2An innermost loop h 3, by that analogy.
The recognition methods of a kind of nested loop structure of the present invention, its step comprises:
1) executable file is carried out dis-assembling, obtain the intermediate code of this executable file;
2) from above-mentioned intermediate code, extract control stream information, controlled flow graph;
3) depth-first traversal control flow graph obtains the loop structure subgraph, and this loop structure comprises:
3-1) hydraulic circulating head node;
3-2) loop body node, and innermost loop head node;
A 3-3) reentry mouthful node, and reentry limit;
4) the innermost loop head node of the above-mentioned node of mark;
5) above-mentioned loop structure subgraph is identified as loop structure.
The method of identification hydraulic circulating head node is the node for current accessed, traveled through as the one descendant node, and be on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, then this descendant node is the hydraulic circulating head node, this descendant node is added in the hydraulic circulating head node listing of this current access node.
The method of identification loop body node is the node for current accessed, do not traveled through as the one descendant node, then travel through this descendant node, be positioned at a loop body as this descendant node, then the current accessed node is the loop body node, and the innermost loop head node of this descendant node is added in the hydraulic circulating head node listing of this current access node.Or for the node of current accessed, traveled through as the one descendant node, and be not on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, but this descendant node is positioned at the loop body of innermost loop head node on being positioned on the depth-first spanning tree from control flow graph Ingress node to the path of current accessed node arranged, then this current access node is the loop body node, this innermost loop head node is added in the hydraulic circulating head node listing of this current access node.
The method of identification reentry mouthful node is the node for current accessed, traveled through as the one descendant node, and be not on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, but this descendant node is positioned at the loop body of no innermost loop head node on being positioned on the depth-first spanning tree from control flow graph Ingress node to the path of current accessed node, this descendant node Ingress node of attaching most importance to then, the directed edge from this current access node to this descendant node is the reentry limit.
The method of the innermost loop head node of the above-mentioned node of mark is the node and the hydraulic circulating head node that needs to add for current accessed, the hydraulic circulating head node listing of this hydraulic circulating head node and it is joined to the relation on the path of current accessed node the hydraulic circulating head node listing of current accessed node from control flow graph Ingress node on depth-first spanning tree according to it, the innermost loop head node of every node in this tabulation is labeled as in this hydraulic circulating head node listing the shortest hydraulic circulating head node of forward path that coexists in the loop body with this node and arrive this node.
Above-mentioned node is the node after expanding, and the control flow graph is expansion control flow graph.
On the control flow graph basis that dis-assembling obtains, obtain expansion control flow graph by following method:
1) for any two node b, c in the control flow graph, satisfy as fruit dot b, c: b}=Pred (c) and c}=Succ (b),
Then b and c are merged into a new node b ', in the programmed control flow graph, replace b, c;
Repetition 1) merging, alternative Process in, any two nodes do not satisfy 1 in the programmed control flow graph) middle merging condition.
Effect of the present invention is: can effectively judge loop structure, and the nest relation between them, and then reach the purpose of resulting structure programmed control flow graph.
The present invention has following advantage:
1. the inventive method is more accurate than the method for the method of P.Havlak and G.Ramalingam, when not being the nest relation of strictness, loop structure also can discern the nest relation between loop structure and the circulation, the structuring degree of program after the raising decompiling;
2. the method efficient height that proposes of the method for the method of the method for the invention P.Havlak and G.Ramalingam, only need carry out all circulations in just can recognizer of depth-first traversal, test and show than the method for P.Havlak fast 2~5 times program;
3. the method for the method of the method for the invention P.Havlak and G.Ramalingam is easy to realize, do not need to use complex data structures such as Interval/DSG and repeatedly iteration carry out aid identification.
Loop structure in the method for the invention full automation identification executable code.This method realizes simple, and recognition result is accurate, and the method complexity is low, the recognition efficiency height.
Description of drawings
Fig. 1 is can not stipulations round-robin control chart example.
Fig. 2 is a loop nesting forest map corresponding among Fig. 1.
Fig. 3 is the overall flow figure of identification loop structure.
Fig. 4 is an identification cyclic node control flow graph.
Fig. 5 is an identification cyclic node situation synoptic diagram.
Fig. 6 is a mark cycle head node tabulation workflow diagram.
Fig. 7 is a mark cycle head node tabulation situation synoptic diagram
Fig. 8 is a cyclic node identification false code.
Fig. 9 is a mark cycle head node tabulation false code.
Embodiment
Round-robin recognition methods of the present invention, its step can be expressed as:
1. executable file is carried out dis-assembling, obtain the intermediate code of this executable file;
2. extract the control stream information from above-mentioned intermediate code, controlled flow graph further obtains expansion control flow graph G=(N, E, h 0): N is a node set, and E is the set on limit, h 0It is control flow graph Ingress node;
3. depth-first traversal expansion control flow graph is discerned cyclic node, specifically comprises each node is carried out to judge:
1) whether this node is the hydraulic circulating head node;
2) whether this node is in loop body, if then find its innermost loop head node;
3) this node inlet of whether attaching most importance to is if then find the reentry limit.
4. the innermost loop head node of flag node;
5. the control flow graph with correspondence is identified as loop structure.
Further, given current accessed node b 0, p is from h on depth-first spanning tree 0To b 0Current path.The present invention can take following method, above-mentioned three attributes of decision node:
1) if b 0Certain subsequent node b traveled through and b in p, then b is the hydraulic circulating head node, and b is joined b 0The hydraulic circulating head node listing in;
2) if b 0Certain subsequent node b do not traveled through, and find b in certain loop body behind the traversal b, then b 0In loop body, and the circulation innermost loop head node h of b joined in the hydraulic circulating head node listing of b;
Perhaps b was traveled through and not in p, but in the loop body of certain innermost loop head node h in p, then b 0In loop body, and h is joined in the middle of the hydraulic circulating head tabulation of b.
3) if b 0Certain subsequent node b traveled through and not in p, if b is at an innermost loop h not in the loop body at current path, then b is that a circulation is reentried mouthful,<b 0, b〉and be a reentry limit.
Further, given current accessed node b 0Hydraulic circulating head node h with need add makes with the following method h is joined b 0The hydraulic circulating head node listing in, to realize the innermost loop head node of flag node:
H and its hydraulic circulating head node listing are joined b according to their relations in p 0The hydraulic circulating head node in.The innermost loop head node of each node therebetween is labeled as in newly-generated tabulation with this node coexists in certain loop body, and arrive the shortest hydraulic circulating head node of forward path of this node.
Below in conjunction with accompanying drawing, the specific embodiment of the present invention is described in more detail.
Referring to Fig. 3, the overall flow of identification loop structure is:
Step 1: utilize various disassemblers, the executable file dis-assembling is handled, obtain intermediate code and represent;
Various disassemblers, as IDA Pro, Objdump can finish this process automatically;
Step 2: on the intermediate code basis, extract the control stream information, further obtain expansion control flow graph;
Step 3: on expansion control stream basis, carry out cyclic node identification.
Further, referring to Fig. 4, the idiographic flow that carries out cyclic node identification is:
Step 1: depth-first traversal control flow graph.Given present node b 0, p is from h on depth-first spanning tree 0To b 0Current path.
Step 2: to b 0Each follow-up b check in the following order:
1) b is a new node, and promptly b was not traveled through, shown in Fig. 5 (A).Traversal b if b is found in certain loop body in traversal back, joins b with the innermost loop head node h of b 0The hydraulic circulating head node in;
2) b traveled through and b in p, shown in Fig. 5 (B).Mark b is a hydraulic circulating head, and b is joined b 0The hydraulic circulating head node listing in the middle of;
3) b was traveled through, b not in p or b not in certain loop body, shown in Fig. 5 (C).Then b is not handled;
4) b traveled through and b not in p, and b is in the loop body of an innermost loop h in p, shown in Fig. 5 (D).H is joined b 0In the hydraulic circulating head node listing;
5) b traveled through and b not in p, and b is at an innermost loop h not in the loop body in p, shown in Fig. 5 (E).B is labeled as the mouth of reentrying, and general<b 0, b〉and be labeled as a reentry limit.If there is the innermost loop of b in a p h 2, with h 2Join b 0The hydraulic circulating head node listing in.
Step 3: hydraulic circulating head node h is added in the hydraulic circulating head node listing of ingress b.
Further, referring to Fig. 6, the idiographic flow that hydraulic circulating head node h is added the hydraulic circulating head node listing of ingress b is:
1) if b equals h or h is empty, then returns;
2) make cur1 equal b, cur2 equals h
3) belong to certain loop body as cur1, repeat following operation
A) make ih equal the innermost loop head node of cur1, as shown in Figure 7, enter circulation time ih in the first time and equal H1;
B) if ih equals cur2, loop ends;
C) if the position of ih in the path less than cur2 position in the drawings.Making the innermost loop head node of cur1 is cur2, and cur1 equals cur2, and cur2 equals ih.As shown in Figure 7, enter circulation time for the second time at algorithm, ih equals H2, and its position in the path is less than current cur2 (being h), and therefore making the innermost loop head node of cur1 (being H1) is h, and the value of cur1 is changed into h, and the value of cur2 is changed into H2.In Fig. 7, show as and deleted the limit from H1 to H2, increased the limit from H1 to h.
D) otherwise, make cur1 equal ih.As shown in Figure 7, when algorithm enters circulation time for the first time, ih equals H1, and its position in the path is greater than current ih (being h), and the value of cur1 is changed into H1.
4) make cur1 in loop body, the innermost loop head node position cur2 of cur1.In Fig. 7, the currency of cur1 is H2 during loop ends, then makes H2 in loop body, and the innermost loop head node of H2 is that the current value of cur2 is H3.Showing as in Fig. 7 has increased the limit from H2 to H3.
Behind the above algorithm of process, the present invention can effectively judge loop structure and their nest relation, resulting structure programmed control flow graph.The present invention uses on the decompiling instrument of applicant's development, has obtained very good effect, has realized purpose of the present invention.

Claims (5)

1. the recognition methods of a nested loop structure, its step comprises:
1) executable file is carried out dis-assembling, obtain the intermediate code of this executable file;
2) from above-mentioned intermediate code, extract control stream information, controlled flow graph;
3) depth-first traversal control flow graph obtains the loop structure subgraph, and method is:
(a) for the node of current accessed, do not traveled through, then traveled through this descendant node as the one descendant node; As travel through the back and find that this descendant node is positioned at a loop body, then the current accessed node is the loop body node, and the innermost loop head node of this descendant node is added in the hydraulic circulating head node listing of this current access node;
(b) for the node of current accessed, traveled through as the one descendant node, and be on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, then this descendant node is the hydraulic circulating head node, this descendant node is added in the hydraulic circulating head node listing of this current access node;
(c) for the node of current accessed, traveled through as the one descendant node, and be not on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, but this descendant node is positioned at the loop body of innermost loop head node on being positioned on the depth-first spanning tree from control flow graph Ingress node to the path of current accessed node arranged, then this current access node is the loop body node, this innermost loop head node is added in the hydraulic circulating head node listing of this current access node;
(d) for the node of current accessed, traveled through as the one descendant node, and be not on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, but this descendant node is positioned at a loop body, and this circulation has the hydraulic circulating head node not to be positioned on the depth-first spanning tree from controlling the flow graph Ingress node to the path of current accessed node, this descendant node Ingress node of attaching most importance to then, the directed edge from this current access node to this descendant node is the reentry limit;
Described loop structure comprises: hydraulic circulating head node, loop body node and innermost loop head node thereof and reentry mouthful node and reentry limit thereof;
4) the innermost loop head node of the above-mentioned node of mark;
5) above-mentioned loop structure subgraph is identified as loop structure.
2. the recognition methods of nested loop structure as claimed in claim 1, it is characterized in that for the node of current accessed and the hydraulic circulating head node that need add, the hydraulic circulating head node listing of this hydraulic circulating head node and it is joined to the relation on the path of current accessed node the hydraulic circulating head node listing of current accessed node from control flow graph Ingress node on depth-first spanning tree according to it, the innermost loop head node of every node in this tabulation is labeled as in this hydraulic circulating head node listing the shortest hydraulic circulating head node of forward path that coexists in the loop body with this node and arrive this node.
3. the recognition methods of nested loop structure as claimed in claim 1 is characterized in that the node after described node is for expansion.
4. the recognition methods of nested loop structure as claimed in claim 1 is characterized in that executable file is carried out dis-assembling by disassemblers IDA Pro.
5. the recognition methods of nested loop structure as claimed in claim 1 is characterized in that executable file is carried out dis-assembling by disassemblers Objdump.
CNB2007100900039A 2007-03-23 2007-03-23 A kind of recognition methods of nested loop structure Expired - Fee Related CN100559347C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100900039A CN100559347C (en) 2007-03-23 2007-03-23 A kind of recognition methods of nested loop structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100900039A CN100559347C (en) 2007-03-23 2007-03-23 A kind of recognition methods of nested loop structure

Publications (2)

Publication Number Publication Date
CN101271397A CN101271397A (en) 2008-09-24
CN100559347C true CN100559347C (en) 2009-11-11

Family

ID=40005390

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100900039A Expired - Fee Related CN100559347C (en) 2007-03-23 2007-03-23 A kind of recognition methods of nested loop structure

Country Status (1)

Country Link
CN (1) CN100559347C (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887500B (en) * 2010-06-10 2013-01-02 复旦大学 Program control flow deep confusion method based on labels
CN102654842B (en) * 2011-03-02 2014-07-30 深圳市金蝶中间件有限公司 Method and device for judging whether flow diagram exists in circulation loop
CN102693133B (en) * 2012-05-22 2016-04-06 东南大学 A kind of coding with endless path, execution and coding/decoding method
CN103559044A (en) * 2013-11-20 2014-02-05 无锡儒安科技有限公司 Method and device for formalizing network control codes of wireless sensor
CN104298600A (en) * 2014-10-23 2015-01-21 广州华多网络科技有限公司 Software testing method and device
CN105589728B (en) * 2015-12-16 2019-03-29 西安文理学院 A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism
CN106650339B (en) * 2016-10-13 2019-06-11 国网江苏省电力公司电力科学研究院 It is a kind of that method is obscured based on the Java code for controlling stream complication
CN109086049B (en) * 2018-07-25 2021-11-02 北京金和网络股份有限公司 Method for traversing user online state data
CN111353182B (en) * 2020-03-11 2023-05-05 电子科技大学 Netlist loop recognition method for FPGA chip

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233640A1 (en) * 2002-04-29 2003-12-18 Hewlett-Packard Development Company, L.P. Structuring program code
EP1513064A2 (en) * 2003-08-26 2005-03-09 Microsoft Corporation Data flow analysis of transactional processes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233640A1 (en) * 2002-04-29 2003-12-18 Hewlett-Packard Development Company, L.P. Structuring program code
EP1513064A2 (en) * 2003-08-26 2005-03-09 Microsoft Corporation Data flow analysis of transactional processes

Also Published As

Publication number Publication date
CN101271397A (en) 2008-09-24

Similar Documents

Publication Publication Date Title
CN100559347C (en) A kind of recognition methods of nested loop structure
Jacobs et al. The VeriFast program verifier
Rugaber et al. Model-driven reverse engineering
Varró et al. Adaptive graph pattern matching for model transformations using model-sensitive search plans
Christopoulou et al. Automated refactoring to the strategy design pattern
Gheorghita et al. Automatic scenario detection for improved WCET estimation
Bulychev et al. Duplicate code detection using anti-unification
Kofler et al. Automatic data layout optimizations for gpus
Fernandez-Amoros et al. A scalable approach to exact model and commonality counting for extended feature models
CN101271398B (en) Recognition method of multi-path branch structure
US20130060753A1 (en) Optimization Method And Apparatus
Wills Using attributed flow graph parsing to recognize clichés in programs
Sharygin et al. Runtime specialization of PostgreSQL query executor
Ujhelyi et al. Anti-pattern detection with model queries: A comparison of approaches
Giachino et al. Deadlock detection in linear recursive programs
Varró et al. Recursive Graph Pattern Matching: (With Magic Sets and Global Search Plans)
CN100451969C (en) Method for recognizing composite conditional branch structure
Romanov et al. Representing programs with dependency and function call graphs for learning hierarchical embeddings
Bräuer et al. Using a generic model query approach to allow for process model compliance checking–an algorithmic perspective
Prokesch et al. Towards automated generation of time-predictable code
Ali et al. Identification and Optimisation of Type-Level Model Queries
Schmidt-Schauß et al. Strictness analysis by abstract reduction using a tableau calculus
Beyhl et al. Incremental view maintenance for deductive graph databases using generalized discrimination networks
Shimomura et al. An approach to GA-driven automatic refactoring based on design patterns
Ferrara et al. Automatic inference of heap properties exploiting value domains

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091111

Termination date: 20150323

EXPY Termination of patent right or utility model