CN106951303A - A kind of LLVM intermediate representation program dicing methods based on information flow analysis - Google Patents
A kind of LLVM intermediate representation program dicing methods based on information flow analysis Download PDFInfo
- Publication number
- CN106951303A CN106951303A CN201710089472.2A CN201710089472A CN106951303A CN 106951303 A CN106951303 A CN 106951303A CN 201710089472 A CN201710089472 A CN 201710089472A CN 106951303 A CN106951303 A CN 106951303A
- Authority
- CN
- China
- Prior art keywords
- program
- sentence
- variable
- information flow
- interprocedual
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
The invention discloses a kind of LLVM intermediate representation program dicing methods based on information flow analysis.First, judge that certain program is process internal program or interprocedual program according to calling figure CG.Described interprocedual program uses following steps:(1) corresponding relation between call relation, argument and parameter between analysis program;(2) D of every call statement is calculated according to formulaS、PS、λS、μS、ρS;(3) each program is analyzed successively further according to the inverse topological order relation of CG calling figures, obtain the D of interprocedual programS、PS、λS、μS、ρS;(4) to the D of all programsS、PS、λS、μS、ρSIt is combined, obtains interprocedual slicing.The inventive method, can cut into slices to LLVM IR program class intermediate language programs, highly versatile, high precision of cutting into slices.
Description
Technical field
The present invention relates to software analysis technology field, it is related to a kind of program slice method, it is particularly a kind of to be based on information flow
The LLVM intermediate representation program dicing methods of analysis.
Background technology
With the fast development of computer technology, quantity and the scale of software systems are constantly expanding, complexity also companion
The more and more higher with the progress of software systems, the program analysis technique arisen at the historic moment has become in software field and weighed very much
The part wanted.
In various program analysis techniques, program slice is the very important technology of one of which.Program slice is a kind of
Broken down into program technology, i.e., a kind of program analysis and understanding method.Program slicing technique and its analysis method have been widely used in reality
The production and research on border and to fields such as the analysis and understanding of program, debugging and tests, also, to the maintenance of software systems
With technical support is also provided in terms of measurement.In actual program development and maintenance process, program slicing technique can
To help to develop preferably to clear program structure and effect with tester, more high-quality and the program simplified are createed, is carried significantly
The high efficiency of work.
Mark Weiser et al. it has been found that, program some output only it is relevant with division statement in source program, delete it
Its sentence has no effect on the result of the output.The program that this sentence relevant with some output is constituted is called source by they
A kind of static slicing of program, and propose the program slice algorithm based on controlling stream graph (CFG).Ottenstein et al. is introduced
The figure accessibility algorithm of program dependency graph (PDG) is based on, the section of calculating process internal program is come with this.Horwitz et al. with
The two pass graph reachability algorithm (being abbreviated as HRB algorithms) based on system dependence graph (SDG) is proposed afterwards.For many years, people
Program slice is had made extensive and intensive studies, many achievements in research are achieved so that it is in software debugging, test, dimension
It is used widely, thus also receives vast in terms of shield, measurement, program parallelization, software inverse engineering and reengineer
Software study, the great attention of developer.
Although people have been presented for multiple programs dicing method, the object of section is typically all C, C++, Python
The program write Deng certain language-specific, and poor universality, section precision are undesirable.LLVM IR be it is a kind of between c language and
The form of assembler language, the readability of existing high-level language, again can than more fully reflect computer bottom data computing and
The situation of transmission, is refined and efficient.LLVMIR design is divided into three phases:Front end, optimization and rear end.If necessary to support
A kind of new programming language, then only need to realize a kind of new front end.A kind of new hardware device is supported if desired, then only
Need to realize a new rear end.And the optimizing phase, because being that have been directed to unified LLVM IR, it is a general rank
Section, whether supports new programming language, or supports new hardware device, all without being made an amendment to the optimizing phase.Thus may be used
To find out LLVM IR effect.
The content of the invention
It is an object of the invention to the defect for overcoming prior art, there is provided a kind of LLVM middle tables based on information flow analysis
Show program slice method, LLVM IR program class intermediate language programs can be cut into slices, highly versatile, high precision of cutting into slices.
To solve the above-mentioned technical problem of prior art, the present invention uses following technical scheme.
A kind of LLVM intermediate representation program dicing methods based on information flow analysis of the present invention, it is characterised in that including
Procedure below:
(1) judge that pre-cut sheets program is process internal program or interprocedual program according to calling figure CG;
(2) the pre-cut sheets program is process internal program, and its step includes:
(2-1) calculates the definition collection D of every sentence according to formulaS, protection collection PS, variable and expression formula relation λS, expression
The relation μ of formula and variableS, variable and variable relation ρS;
(2-2) and then the precedence relationship performed according to sentence in program, is combined to sentence, overall until obtaining program
DS、PS、λS、μS、ρS, wherein DS、PSRepresentation be set, and λS、μS、ρSIt is a matrix respectively;
(2-3) is according to λSAnd μS, the forward slicing and backward slicing of any variable in single program can be obtained respectively;
(3) the pre-cut sheets program is interprocedual program, and its step includes:
(3-1) initializes the D of all sentencesS、PS、λS、μS、ρS;
(3-2) updates the D of all call statementsS、PS、λS、μS、ρS;
(3-3) is combined to the sentence of each subprogram, obtains the D at each program exitS、PS、λS、μS、ρS;
The D of (3-4) to all programsS、PS、λS、μS、ρSIt is combined, obtains interprocedual slicing.
The detailed process of above-mentioned steps (3-1) is:
(3-101) obtains calling figure CG;Program's source code is put in one file as input, obtained using existing software
The calling figure of program;
(3-102) initializes the D of all sentencesS、PS、λS、μS、ρS,
If sentence S is assignment statement v=e, DS={ v }, PS=V- { v }, λS=Γ (e) X { e }, μS={ (e, v) }, ρS
=(Γ (e) × { v }) ∪ (ι-{ (v, v) }), wherein, V represent sentence S variable in a program set, Γ (e) represents occur
The set of variable in e;
If sentence S is conditional statement if e then A else B, DS=DA∪DB, PS=PA∪PB, λS=(Γ (e)
×{e})∪λA∪λB, μS=({ e } × (DA∪DB))∪μA∪μB, ρS=(Γ (e) × (DA∪DB))∪ρA∪ρB;
If sentence S is Do statement while e do A, DS=DA, PS=V, λS=ρA*((Γ(e)×{e}∪λA), μS=
({e}×DA)∪μAρA*((Γ(e)×DA) ∪ ι), ρS=ρA*((Γ(e)×DA) ∪ ι), wherein ρA*For ρATransitive closure, ι
=(v, w) ∈ V*V | v=w };
If sentence S is other types sentence,PS=V,ρS=ι.
The detailed process of above-mentioned steps (3-2) is:
(3-201) finds each input argument VaiCorresponding input parameter Vfi;
(3-202) updates call statement S DS、PS、λS、μS、ρS, DS=Vao∪{Vfi, PS=V-DS, λS={ Vai} × S,
μS=(S × { Vao})∪(S×{Vfi), ρS=({ Vai}×{Vao})∪({Vai}×{Vfi), wherein, VaoFor call statement
Export argument, VaiFor the input argument of call statement, VfiFor input argument VaiCorresponding input parameter.
The detailed process of above-mentioned steps (3-3) is:
(3-301) finds each output parameter VfoCorresponding output argument Vao;
(3-302) takes out a program P not analyzed according to CG inverse topological order from CG;
The sequencing that (3-303) is performed according to sentence in P, P=((((((a are expressed as by program P;b);c);d);e);
f);... ordered set j), wherein, a, b...j represents a sentence respectively;
(3-304) makes S=(a;B), according to DS=Da∪Db,PS=Pa∩Pb, λS=λa∪ρaλb, μS=μaρb∪μb, ρS=
ρaρb, to S five kinds of relations, then by (S;C) regard a sequential statement collection as, be combined ... so circulation until obtaining P journeys
The whole result D of sequenceP、PP、λP、μP、ρP;
(3-305) is according to output parameter VfoWith output argument VaoCorresponding relation, update μP=μP∪{(s,Vao)|(s,
Vfo)∈μP, s is certain sentence in P;
(3-306) repeat step (3-302), until all programs are all analyzed.
The detailed process of above-mentioned steps (3-4) is:
(3-401) to called program and is applied to debug and is combined successively, until all program compositions are into an entirety T,
Obtain DT、PT、λT、μT、ρT;
(3-402) a certain variable v forward slicing is λTMiddle variable v is expert at the set of all sentences, v backward slicing
For μTThe set of middle all sentences of v columns.
Compared with prior art, the present invention has advantages below and beneficial effect:
1. the present invention cuts into slices to this intermediate languages of LLVM IR, rather than specific programming language, highly versatile;
2. use information flow analysis method so that slicing processes become clear so that the precision of section is greatly improved;
3. carrying out interprocedual slicing using information flow analysis method, the content of section is enriched.
Brief description of the drawings
Fig. 1 is a kind of method flow diagram of embodiment of the present invention.
Fig. 2 is a kind of method flow diagram cut into slices to interprocedual program of embodiment of the present invention.
Embodiment
The present invention provides a kind of LLVM intermediate representation program dicing methods based on information flow analysis, mainly to LLVM
IR (Low Level Virtual Machine Intermediate Representation, underlying virtual machine intermediate representation)
Program carries out the program slice based on information flow analysis.Information flow analysis method is a kind of static program based on information flow point
Analysis mode, it check that out the mistake that many compilers can not also be found out.This method can also give people to provide very many
Useful information, can not only judge the validity of sentence, can also be apparent from the relation for inputting and exporting, and it is a kind of important
Program analysis method.Information flow analysis technology is suffered from many aspects such as program optimization, Program Static Analysis, program test
Important application, the difference of application field, the attribute of analyze data is also different.The present invention passes through the acquisition to variate-value in program
With the analysis of propagation, and then the relation of variable and program statement is described, program is cut into slices using such analysis method.
A kind of LLVM intermediate representation program dicing methods based on information flow analysis of the present invention, it is characterised in that including
Procedure below:
(1) judge that pre-cut sheets program is process internal program or interprocedual program according to calling figure CG;
(2) the pre-cut sheets program is process internal program, and its step includes:
(2-1) calculates the definition collection D of every sentence according to formulaS, protection collection PS, variable and expression formula relation λS, expression
The relation μ of formula and variableS, variable and variable relation ρS;
(2-2) and then the precedence relationship performed according to sentence in program, is combined to sentence, overall until obtaining program
DS、PS、λS、μS、ρS, wherein DS、PSRepresentation be set, and λS、μS、ρSIt is a matrix respectively;
(2-3) is according to λSAnd μS, the forward slicing and backward slicing of any variable in single program can be obtained respectively;
(3) the pre-cut sheets program is interprocedual program, and its step includes:
(3-1) initializes the D of all sentencesS、PS、λS、μS、ρS;
(3-2) updates the D of all call statementsS、PS、λS、μS、ρS;
(3-3) is combined to the sentence of each subprogram, obtains the D at each program exitS、PS、λS、μS、ρS;
The D of (3-4) to all programsS、PS、λS、μS、ρSIt is combined, obtains interprocedual slicing.
The detailed process of above-mentioned steps (3-1) is:
(3-101) obtains calling figure CG;Program's source code is put in one file as input, obtained using existing software
The calling figure of program;
(3-102) initializes the D of all sentencesS、PS、λS、μS、ρS,
If sentence S is assignment statement v=e, DS={ v }, PS=V- { v }, λS=Γ (e) X { e }, μS={ (e, v) }, ρS
=(Γ (e) × { v }) ∪ (ι-{ (v, v) });
If sentence S is conditional statement if e then A else B, DS=DA∪DB, PS=PA∪PB, λS=(Γ (e)
×{e})∪λA∪λB, μS=({ e } × (DA∪DB))∪μA∪μB, ρS=(Γ (e) × (DA∪DB))∪ρA∪ρB;
If sentence S is Do statement while e do A, DS=DA, PS=V, λS=ρA*((Γ(e)×{e}∪λA), μS=
({e}×DA)∪μAρA*((Γ(e)×DA) ∪ ι), ρS=ρA*((Γ(e)×DA) ∪ ι), wherein ρA*For ρATransitive closure;
If sentence S is other types sentence,PS=V,ρS=ι, wherein ι={ (v, w) ∈ V*
V | v=w }, V is the set of all variables in program.
The detailed process of above-mentioned steps (3-2) is:
(3-201) finds each input argument VaiCorresponding input parameter Vfi;
(3-202) updates call statement S DS、PS、λS、μS、ρS, DS=Vao∪{Vfi, PS=V-DS, λS={ Vai} × S,
μS=(S × { Vao})∪(S×{Vfi), ρS=({ Vai}×{Vao})∪({Vai}×{Vfi), wherein, VaoFor call statement
Export argument, VaiFor the input argument of call statement, VfiFor input argument VaiCorresponding input parameter.
The detailed process of above-mentioned steps (3-3) is:
(3-301) finds each output parameter VfoCorresponding output argument Vao;
(3-302) takes out a program P not analyzed according to CG inverse topological order from CG;
The sequencing that (3-303) is performed according to sentence in P, P=((((((a are expressed as by program P;b);c);d);e);
f);... ordered set j), wherein, a, b...j represents a sentence respectively;
(3-304) makes S=(a;B), according to DS=Da∪Db,PS=Pa∩Pb, λS=λa∪ρaλb, μS=μaρb∪μb, ρS=
ρaρb, to S five kinds of relations, then by (S;C) regard a sequential statement collection as, be combined ... so circulation until obtaining P journeys
The whole result D of sequenceP、PP、λP、μP、ρP;
(3-305) is according to output parameter VfoWith output argument VaoCorresponding relation, update μP=μP∪{(s,Vao)|(s,
Vfo)∈μP, s is certain sentence in P;
(3-306) repeat step (3-302), until all programs are all analyzed.
The detailed process of above-mentioned steps (3-4) is:
(3-401) to called program and is applied to debug and is combined successively, until all program compositions are into an entirety T,
Obtain DT、PT、λT、μT、ρT;
(3-402) a certain variable v forward slicing is λTMiddle variable v is expert at the set of all sentences, v backward slicing
For μTThe set of middle all sentences of v columns.
In order to make the purpose , technical scheme and advantage of the present invention be clearer, it is right below in conjunction with drawings and Examples
The present invention is further elaborated.
Fig. 1 is a kind of method flow diagram of embodiment of the present invention.As shown in figure 1, the present embodiment based on information flow point
The step of LLVM intermediate representation program dicing methods of analysis is:First, judge that certain program is journey in process according to CG (calling figure)
Sequence or interprocedual program.
If process internal program, is followed the steps below:1) the definition collection D of every sentence is calculated according to formulaS, protection collection PS、
The relation λ of variable and expression formulaS, expression formula and variable relation μS, variable and variable relation ρS;2) and then according in program
The precedence relationship that sentence is performed, is combined to sentence, until obtaining the overall D of programS、PS、λS、μS、ρS, wherein DS、PS's
Representation is set, and λS、μS、ρSIt is a matrix respectively;3) according to λSAnd μS, can obtain respectively any in single program
The forward slicing and backward slicing of variable.
Fig. 2 is a kind of method flow diagram cut into slices to interprocedual program of embodiment of the present invention.
If interprocedual program, is followed the steps below:1) pair between call relation, argument and parameter between analysis program
It should be related to;2) D of every call statement is calculated according to formulaS、PS、λS、μS、ρS;3) further according to the inverse topological order of calling figure (CG)
Relation analyzes each program successively, obtains the D of each interprocedual programS、PS、λS、μS、ρS;4) then by each program successively
Be combined two-by-two until all programs are combined into an entirety T;Finally according to λTAnd μTCan obtain any variable forward direction and
Backward slicing.It implements step:
Step 1) calling figure (CG) is obtained,
Step 1.1) program's source code is put in one file as input, obtain calling for program using existing software
Figure;
Step 1.2) if only one of which node, only one of which program P in CG, be that section goes to step 2 in process, otherwise for
Interprocedual slicing, goes to step 3;
Step 2) cut into slices in process,
Step 2.1) according to the sequencing of sentence execution in P, program P is expressed as P=((((((a;b);c);d);
e);f);... ordered set j), wherein, a, b...j represents a sentence respectively;
Step 2.2) make S=(a;B), according to DS=Da∪Db,PS=Pa∩Pb, λS=λa∪ρaλb, μS=μaρb∪μb, ρS
=ρaρb, obtain S five kinds of relations, then by (S;C) regard a sequential statement collection as, be combined ... so circulation until obtaining
The whole result D of P programsP、PP、λP、μP、ρP;
Step 2.3) a certain variable v forward slicing be λPMiddle variable v is expert at the set of all sentences, and the backward of v is cut
Piece is μPThe set of middle all sentences of v columns.
Step 3) update call statement and the D at subroutine exitS、PS、λS、μS、ρS,
Step 3.1) find each input argument VaiCorresponding input parameter Vfi;
Step 3.2) update all call statement S DS、PS、λS、μS、ρS, DS=Vao∪{Vfi, PS=V-DS, λS=
{Vai} × S, μS=(S × { Vao})∪(S×{Vfi), ρS=({ Vai}×{Vao})∪({Vai}×{Vfi), wherein VaoTo adjust
With the output argument of sentence, VaiFor the input argument of call statement, VfiFor input argument VaiCorresponding input parameter;
Step 3.3) find each output parameter VfoCorresponding output argument Vao,
Step 3.4) according to CG inverse topological order, a program P not analyzed is taken out from CG,
Step 3.5) according to the sequencing of sentence execution in P, program P is expressed as P=((((((a;b);c);d);
e);f);... ordered set j), wherein, a, b...j represents a sentence respectively,
Step 3.6) make S=(a;B), according to DS=Da∪Db,PS=Pa∩Pb, λS=λa∪ρaλb, μS=μaρb∪μb, ρS
=ρaρb, obtain S five kinds of relations, then by (S;C) regard a sequential statement collection as, be combined ... so circulation until obtaining
The whole result D of P programsP、PP、λP、μP、ρP,
Step 3.7) according to output parameter VfoWith output argument VaoCorresponding relation, update μP=μP∪{(s,Vao)|(s,
Vfo)∈μP};
Step 3.8) repeat step 3.4, until all programs have all been analyzed.
Step 4) interprocedual slicing is carried out,
Step 4.1) to called program and apply to debug and be combined successively, until all program compositions are into an entirety T,
Obtain DT、PT、λT、μT、ρT;
Step 4.2) a certain variable v forward slicing be λTMiddle variable v is expert at the set of all sentences, and the backward of v is cut
Piece is μTThe set of middle all sentences of v columns.
Claims (5)
1. a kind of LLVM intermediate representation program dicing methods based on information flow analysis, it is characterised in that including procedure below:
(1) judge that pre-cut sheets program is process internal program or interprocedual program according to calling figure CG;
(2) the pre-cut sheets program is process internal program, and its step includes:
(2-1) calculates the definition collection D of every sentence according to formulaS, protection collection PS, variable and expression formula relation λS, expression formula with
The relation μ of variableS, variable and variable relation ρS;
(2-2) and then the precedence relationship performed according to sentence in program, is combined to sentence, until obtaining the overall D of programS、
PS、λS、μS、ρS, wherein DS、PSRepresentation be set, and λS、μS、ρSIt is a matrix respectively;
(2-3) is according to λSAnd μS, the forward slicing and backward slicing of any variable in single program can be obtained respectively;
(3) the pre-cut sheets program is interprocedual program, and its step includes:
(3-1) initializes the D of all sentencesS、PS、λS、μS、ρS;
(3-2) updates the D of all call statementsS、PS、λS、μS、ρS;
(3-3) is combined to the sentence of each subprogram, obtains the D at each program exitS、PS、λS、μS、ρS;
The D of (3-4) to all programsS、PS、λS、μS、ρSIt is combined, obtains interprocedual slicing.
2. a kind of LLVM intermediate representation program dicing methods based on information flow analysis according to claim 1, its feature
It is that the detailed process of the step (3-1) is:
(3-101) obtains calling figure CG;Program's source code is put in one file as input, program is obtained using existing software
Calling figure;
(3-102) initializes the D of all sentencesS、PS、λS、μS、ρS,
If sentence S is assignment statement v=e, DS={ v }, PS=V- { v }, λS=Γ (e) × { e }, μS={ (e, v) }, ρS=
(Γ (e) × { v }) ∪ (ι-{ (v, v) }), wherein, V represent sentence S variable in a program set, Γ (e) represents to appear in
The set of variable in e;
If sentence S is conditional statement if e then A else B, DS=DA∪DB, PS=PA∪PB, λS=(Γ (e) × { e })
∪λA∪λB, μS=({ e } × (DA∪DB))∪μA∪μB, ρS=(Γ (e) × (DA∪DB))∪ρA∪ρB;
If sentence S is Do statement while e do A, DS=DA, PS=V, λS=ρA*((Γ(e)×{e}∪λA), μS=({ e }
×DA)∪μAρA*((Γ(e)×DA) ∪ ι), ρS=ρA*((Γ(e)×DA) ∪ ι), wherein ρA*For ρATransitive closure, ι=
(v, w) ∈ V × V | v=w };
If sentence S is other types sentence,PS=V,ρS=ι.
3. a kind of LLVM intermediate representation program dicing methods based on information flow analysis according to claim 1, its feature
It is that the detailed process of the step (3-2) is:
(3-201) finds each input argument VaiCorresponding input parameter Vfi;
(3-202) updates call statement S DS、PS、λS、μS、ρS, DS=Vao∪{Vfi, PS=V-DS, λS={ Vai} × S, μS=
(S×{Vao})∪(S×{Vfi), ρS=({ Vai}×{Vao})∪({Vai}×{Vfi), wherein, VaoFor the output of call statement
Argument, VaiFor the input argument of call statement, VfiFor input argument VaiCorresponding input parameter.
4. a kind of LLVM intermediate representation program dicing methods based on information flow analysis according to claim 1, its feature
It is that the detailed process of the step (3-3) is:
(3-301) finds each output parameter VfoCorresponding output argument Vao;
(3-302) takes out a program P not analyzed according to CG inverse topological order from CG;
The sequencing that (3-303) is performed according to sentence in P, P=((((((a are expressed as by program P;b);c);d);e);
f);... ordered set j), wherein, a, b...j represents a sentence respectively;
(3-304) makes S=(a;B), according to DS=Da∪Db,PS=Pa∩Pb, λS=λa∪ρaλb, μS=μaρb∪μb, ρS=ρaρb,
To S five kinds of relations, then by (S;C) regard a sequential statement collection as, be combined ... so circulation until obtaining P programs
Whole result DP、PP、λP、μP、ρP;
(3-305) is according to output parameter VfoWith output argument VaoCorresponding relation, update μP=μP∪{(s,Vao)|(s,Vfo)∈
μP, s is certain sentence in P;
(3-306) repeat step (3-302), until all programs are all analyzed.
5. a kind of LLVM intermediate representation program dicing methods based on information flow analysis according to claim 1, its feature
It is that the detailed process of the step (3-4) is:
(3-401) to called program and is applied to debug and is combined successively, until all program compositions are into an entirety T, is obtained
DT、PT、λT、μT、ρT;
(3-402) a certain variable v forward slicing is λTMiddle variable v is expert at the set of all sentences, and v backward slicing is μT
The set of middle all sentences of v columns.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710089472.2A CN106951303B (en) | 2017-02-20 | 2017-02-20 | LLVM intermediate representation program slicing method based on information flow analysis |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710089472.2A CN106951303B (en) | 2017-02-20 | 2017-02-20 | LLVM intermediate representation program slicing method based on information flow analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951303A true CN106951303A (en) | 2017-07-14 |
CN106951303B CN106951303B (en) | 2020-09-22 |
Family
ID=59467384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710089472.2A Active CN106951303B (en) | 2017-02-20 | 2017-02-20 | LLVM intermediate representation program slicing method based on information flow analysis |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951303B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859383A (en) * | 2020-06-08 | 2020-10-30 | 西安电子科技大学 | Software automatic segmentation method, system, storage medium, computer equipment and terminal |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559122A (en) * | 2013-10-14 | 2014-02-05 | 西安交通大学 | Test case reduction method based on program behavior slices |
CN104077226A (en) * | 2014-07-07 | 2014-10-01 | 西安交通大学 | Multithreaded program output uniqueness detection and evidence generation method based on program constraint building |
CN104572476A (en) * | 2015-01-30 | 2015-04-29 | 南京邮电大学 | Software safety testing method based on program slicing |
CN105700893A (en) * | 2016-02-23 | 2016-06-22 | 南京邮电大学 | LLVM IR program slicing method based on improved system dependence graph |
US9378377B1 (en) * | 2013-03-13 | 2016-06-28 | Hrl Laboratories, Llc | System for information flow security inference through program slicing |
-
2017
- 2017-02-20 CN CN201710089472.2A patent/CN106951303B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378377B1 (en) * | 2013-03-13 | 2016-06-28 | Hrl Laboratories, Llc | System for information flow security inference through program slicing |
CN103559122A (en) * | 2013-10-14 | 2014-02-05 | 西安交通大学 | Test case reduction method based on program behavior slices |
CN104077226A (en) * | 2014-07-07 | 2014-10-01 | 西安交通大学 | Multithreaded program output uniqueness detection and evidence generation method based on program constraint building |
CN104572476A (en) * | 2015-01-30 | 2015-04-29 | 南京邮电大学 | Software safety testing method based on program slicing |
CN105700893A (en) * | 2016-02-23 | 2016-06-22 | 南京邮电大学 | LLVM IR program slicing method based on improved system dependence graph |
Non-Patent Citations (2)
Title |
---|
姚家宝: "一种基于信息流分析的程序切片方法", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
王良平 等: "基于程序切片的一种耦合度量改进算法", 《电子科技》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859383A (en) * | 2020-06-08 | 2020-10-30 | 西安电子科技大学 | Software automatic segmentation method, system, storage medium, computer equipment and terminal |
CN111859383B (en) * | 2020-06-08 | 2021-08-06 | 西安电子科技大学 | Software automatic segmentation method, system, storage medium, computer equipment and terminal |
Also Published As
Publication number | Publication date |
---|---|
CN106951303B (en) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wolf et al. | Automatic performance analysis of hybrid MPI/OpenMP applications | |
JP6526632B2 (en) | Evaluation of the rules applied to the data | |
US8533642B1 (en) | Hardware definition language generation for frame-based processing | |
Harman et al. | Code extraction algorithms which unify slicing and concept assignment | |
Garzón et al. | Umple: A framework for model driven development of object-oriented systems | |
CN105700893A (en) | LLVM IR program slicing method based on improved system dependence graph | |
CN106951303A (en) | A kind of LLVM intermediate representation program dicing methods based on information flow analysis | |
Braun et al. | An interactive and comprehensive working environment for high-energy physics software with python and jupyter notebooks | |
van Gent et al. | A critical look at design automation solutions for collaborative MDO in the AGILE paradigm | |
Wagner et al. | Performance analysis of complex engineering frameworks | |
Tenne | Initial sampling methods in metamodel-assisted optimization | |
Tian et al. | A comparison of measurement and defect characteristics of new and legacy software systems | |
Gong et al. | Nek5000 with OpenACC | |
Kumbhar et al. | An optimizing multi-platform source-to-source compiler framework for the NEURON MODeling language | |
Prodan et al. | ZEN: A directive-based language for automatic experiment management of distributed and parallel programs | |
Rugaber | White paper on reverse engineering | |
Fahringer et al. | Aksum: A performance analysis tool for parallel and distributed applications | |
Bucker et al. | Explicit loop scheduling in OpenMP for parallel automatic differentiation | |
Clay | Strained turbulence and low-diffusivity turbulent mixing using high performance computing | |
Olszewska et al. | Specification metrics for Event-B developments | |
Mrayyan et al. | Debugging of Parallel Programs using Distributed Cooperating Components | |
Malloy et al. | Using a molecular metaphor to facilitate comprehension of 3d object diagrams | |
Conserva Filho et al. | Implementing tactics of refinement in CRefine | |
CN109710538A (en) | A kind of static detection method for state related defects in large scale system | |
Hölbig et al. | An approach for encapsulating Fortran coded models into a R package |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |