CN109117633A - Static source code scan method, device, computer equipment and storage medium - Google Patents
Static source code scan method, device, computer equipment and storage medium Download PDFInfo
- Publication number
- CN109117633A CN109117633A CN201810915002.1A CN201810915002A CN109117633A CN 109117633 A CN109117633 A CN 109117633A CN 201810915002 A CN201810915002 A CN 201810915002A CN 109117633 A CN109117633 A CN 109117633A
- Authority
- CN
- China
- Prior art keywords
- node
- chain
- execution
- source code
- code
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
The application proposes a kind of static source code scan method, device, computer equipment and storage medium, wherein method includes: to obtain the corresponding abstract syntax tree of source code to be scanned;Code information in the abstract syntax tree is parsed, execution chain set corresponding with the abstract syntax tree is generated, wherein it is corresponding with an execution route in source code respectively to execute every execution chain in chain set;Every execution chain in the execution chain set is traversed, whether to include defect code in the determination source code.Pass through this method, only every execution chain, which need to be analyzed, can determine defect code, analytic process is simple, reliable, improve analysis efficiency, it solves and first converts source code into corresponding controlling stream graph in the prior art, the static scanning that source code is realized in traversal analysis carried out to controlling stream graph again, the technical issues of analytic process is complicated, low efficiency.
Description
Technical field
This application involves technical field of data processing more particularly to a kind of static source code scan method, device, computer to set
Standby and storage medium.
Background technique
Static source scan is to be referred to more one of software application security solution by people in recent years, is referred to soft
In part engineering, programmer is scanned the source code for writing completion after finishing writing source code, exists in source code to find out
Defect, guarantee software quality.
Currently, being mostly to convert source code by various modes when carrying out static scanning to source code in the related technology
Controlling stream graph, then traversal analysis is carried out to controlling stream graph using many algorithms, to carry out defects detection to source code.This static state
Scanning mode, analytic process is complicated, and needs to write corresponding traversal program, low efficiency to different analysis targets.
Summary of the invention
The application is intended to solve at least some of the technical problems in related technologies.
For this purpose, the application's proposes a kind of static source code scan method, device, computer equipment and storage medium, it is used for
Solution first converts source code into corresponding controlling stream graph in the prior art, then carries out traversal analysis realization source generation to controlling stream graph
The technical issues of static scanning of code, analytic process complexity, low efficiency.
In order to achieve the above object, the application first aspect embodiment proposes a kind of static source code scan method, comprising:
Obtain the corresponding abstract syntax tree of source code to be scanned;
Code information in the abstract syntax tree is parsed, execution chain corresponding with the abstract syntax tree is generated
Set, wherein it is corresponding with an execution route in source code respectively to execute every execution chain in chain set;
Every execution chain in the execution chain set is traversed, whether to include defect generation in the determination source code
Code.
The static source code scan method of the embodiment of the present application is right by obtaining the corresponding abstract syntax tree of source code to be scanned
Code information in abstract syntax tree is parsed, and generates execution chain set corresponding with abstract syntax tree, and then to execution chain
Whether every execution chain in set is traversed, to determine in source code comprising defect code.As a result, by being converted to source code
Abstract syntax tree, and abstract syntax tree itself contains all information of source code, so as to directly be obtained according to abstract syntax tree
All possible execution chain is taken, and then every execution chain is traversed, that is, can determine defect code, analytic process is simple, can
It leans on, improves analysis efficiency.
In order to achieve the above object, the application second aspect embodiment proposes a kind of static source code scanning means, comprising:
Module is obtained, for obtaining the corresponding abstract syntax tree of source code to be scanned;
Generation module generates and the abstract syntax for parsing to the code information in the abstract syntax tree
Set corresponding execution chain set, wherein it is corresponding with an execution route in source code respectively to execute every execution chain in chain set;
Spider module, for being traversed to every execution chain in the execution chain set, in the determination source code
It whether include defect code.
The static source code scanning means of the embodiment of the present application, it is right by obtaining the corresponding abstract syntax tree of source code to be scanned
Code information in abstract syntax tree is parsed, and generates execution chain set corresponding with abstract syntax tree, and then to execution chain
Whether every execution chain in set is traversed, to determine in source code comprising defect code.As a result, by being converted to source code
Abstract syntax tree, and abstract syntax tree itself contains all information of source code, so as to directly be obtained according to abstract syntax tree
All possible execution chain is taken, and then every execution chain is traversed, that is, can determine defect code, analytic process is simple, can
It leans on, improves analysis efficiency.
In order to achieve the above object, the application third aspect embodiment proposes a kind of computer equipment, comprising: processor and deposit
Reservoir;Wherein, the processor is held to run with described by reading the executable program code stored in the memory
The corresponding program of line program code, for realizing the static source code scan method as described in first aspect embodiment.
In order to achieve the above object, the application fourth aspect embodiment proposes a kind of non-transitory computer-readable storage medium
Matter is stored thereon with computer program, and the static father as described in first aspect embodiment is realized when which is executed by processor
Code scan method.
In order to achieve the above object, the 5th aspect embodiment of the application proposes a kind of computer program product, when the calculating
The static source code scan method as described in first aspect embodiment is realized when instruction in machine program product is executed as processor.
The additional aspect of the application and advantage will be set forth in part in the description, and will partially become from the following description
It obtains obviously, or recognized by the practice of the application.
Detailed description of the invention
The application is above-mentioned and/or additional aspect and advantage will become from the following description of the accompanying drawings of embodiments
Obviously and it is readily appreciated that, in which:
Fig. 1 is a kind of flow diagram of static source code scan method provided by the embodiment of the present application;
Fig. 2 (a) is the exemplary diagram one that source code is converted to abstract syntax tree;
Fig. 2 (b) is the exemplary diagram two that source code is converted to abstract syntax tree;
Fig. 3 is the flow diagram of the static source code scan method of another kind provided by the embodiment of the present application;
Fig. 4 (a) is the disassembled exemplary diagram of the sentence in execution chain;
Fig. 4 (b) is the exemplary diagram being incorporated into sub- execution chain after main execution chain;
Fig. 5 is the flow diagram of another static source code scan method provided by the embodiment of the present application;
Fig. 6 is a kind of structural schematic diagram of static source code scanning means provided by the embodiment of the present application;
Fig. 7 is the structural schematic diagram of the static source code scanning means of another kind provided by the embodiment of the present application;
Fig. 8 is the structural schematic diagram of another static source code scanning means provided by the embodiment of the present application;And
Fig. 9 is the structural schematic diagram of computer equipment provided by the embodiment of the present application.
Specific embodiment
Embodiments herein is described below in detail, examples of the embodiments are shown in the accompanying drawings, wherein from beginning to end
Same or similar label indicates same or similar element or element with the same or similar functions.Below with reference to attached
The embodiment of figure description is exemplary, it is intended to for explaining the application, and should not be understood as the limitation to the application.
Below with reference to the accompanying drawings the static source code scan method, device, computer equipment and storage of the embodiment of the present application are described
Medium.
Fig. 1 is a kind of flow diagram of static source code scan method provided by the embodiment of the present application.
As shown in Figure 1, the static state source code scan method may comprise steps of:
Step 101, the corresponding abstract syntax tree of source code to be scanned is obtained.
Abstract syntax tree (Abstract Syntax Tree, AST) is the tree-shaped performance of the abstract syntax structure of source code
Form has the characteristics that advantageously reduce the workload during code analysis independent of concrete grammar and language details.
In the present embodiment, for source code to be scanned, available corresponding abstract syntax tree.It specifically, can be by
Corresponding abstract syntax tree is converted to by source code to be scanned by syntax analyzer in syntax analyzer.For example, syntactic analysis
Device can be ANTLR, PHP-Parser, Eclipse JDT, Clang, JavaCC etc..
For example, it is assumed that source code to be scanned is as follows:
Then, after being converted to the source code to be scanned, shown in obtained abstract syntax tree such as Fig. 2 (a).
In another example, it is assumed that source code to be scanned is as follows:
Then, after being converted to the source code of the XML language, shown in obtained abstract syntax tree such as Fig. 2 (b).
Step 102, the code information in abstract syntax tree is parsed, generates execution chain corresponding with abstract syntax tree
Set, wherein it is corresponding with an execution route in source code respectively to execute every execution chain in chain set.
After source code to be scanned is converted to corresponding abstract syntax tree, abstract syntax tree itself contains source code to be scanned
In all information, all possible execution route of source code to be scanned can be directly obtained from abstract syntax tree, i.e., execution chain.
To in the present embodiment, be parsed to the code information in the abstract syntax tree of acquisition, obtaining can in source code to be scanned
All execution chains that can include, and then all execution chains are utilized, generate execution chain set corresponding with abstract syntax tree.
For example, by taking the abstract syntax tree as shown in Fig. 2 (a) as an example, which is parsed, can be obtained
To three execution chains, it is respectively as follows: 1. stmts_list → [false] stmt_while condition → stmt_return;②
stamts_list→[true]stamt_while_condition→[false]stmtif condition→else_body
Assign (=) → stmt_return;③stamts_list→[true]stamt_while_condition→[true]
Stmtif condition → if_body assign (=) → stmt_return, then execution corresponding with the abstract syntax tree
Chain set includes above-mentioned three execution chains.
Step 103, the every execution chain executed in chain set is traversed, whether to determine in source code comprising defect generation
Code.
It, can be to every executed in chain set after obtaining the corresponding execution chain set of abstract syntax tree in the present embodiment
It executes chain to be traversed, whether to determine in source code comprising defect code.Defect generation can be found by traversing every execution chain
Code, avoids in the related technology, converts controlling stream graph for abstract syntax tree first, then traversed again to controlling stream graph
Complicated processes improve the scan efficiency of static source code.
The static source code scan method of the present embodiment, by obtaining the corresponding abstract syntax tree of source code to be scanned, to abstract
Code information in syntax tree is parsed, and generates execution chain set corresponding with abstract syntax tree, and then to execution chain set
In every execution chain traversed, whether to determine in source code comprising defect code.It is abstract by being converted to source code as a result,
Syntax tree, and abstract syntax tree itself contains all information of source code, so as to directly obtain institute according to abstract syntax tree
Possible execution chain, and then every execution chain is traversed, that is, it can determine defect code, analytic process is simple, reliable, mentions
High analysis efficiency.
In order to clearly describe to parse in previous embodiment to the code information in abstract syntax tree, generate with
The corresponding specific implementation process for executing chain set of abstract syntax tree, present applicant proposes another static source code scan method,
Fig. 3 is the flow diagram of the static source code scan method of another kind provided by the embodiment of the present application.
As shown in figure 3, step 102 may comprise steps of on the basis of embodiment as shown in Figure 1:
Step 201, it by father node to end child node, successively according to the corresponding node type of each node, generates a plurality of
Son executes chain, wherein it includes at least one node in chain that every strip, which executes,.
Some node types can be pre-defined in syntax analyzer, and source code to be scanned is converted into pumping using syntax analyzer
When as syntax tree, node type label can be carried out to each node in abstract syntax tree according to node type predetermined.
For example, the part of nodes type of definition has in PHP-Parser syntax analyzer:
(1) PhpParser Node Stmt, sentence node is the structure without any return information (return), such as assign
It is worth sentence " $ a=$ b ";
(2) PhpParser Node Expr, expression formula node is the language construction that can return to a value, such as $ var and
func();
(3) PhpParser Node Scalar, constant node, can be used to indicate any constant value.
For another example, in Eclipse JDT syntax analyzer, the part of nodes type of definition has:
(1) ExpressionStatement, statement expression indicate to execute one section of common sentence, such as
"object.toString()";
(2) VariableDeclaration, variable-definition indicate to define a variable, such as " int a=1;";
(3) IfStatement, conditional expression are the branched structure comprising if/else, such as " if (a)
{objectA.toString();}else{objectB.toString();}".
In practical application, the meaning of expression is different, such as sentence node, constant node due to different types of node
Deng the usually fundamental node of sentence, when being parsed from father node to child node, after the node for encountering the type
Stopping continues to disassemble node;And for conditional statement node, such as if sentence node, since such node can include item
Part child node and execution sentence child node etc. are worked as therefore, it is necessary to carry out continuing to parse to each node after the node with determination
Multiple branch statements in preceding execution sentence.That is, in the present embodiment, when being parsed to abstract syntax tree, from father
Node to end child node, can according to the type of node each in abstract syntax tree, come determine execute chain start-stop position and
Fractionation mode, to generate a plurality of sub- execution chain.
For example, it by taking the abstract syntax tree as shown in Fig. 2 (a) as an example, according to the node type of each node, is saved from father
Point stmts_list starts to be traversed, until when node " stmt_while ", since the node is Do statement, i.e., the node it
Each node needs afterwards are further disassembled, to form the current each branch statement for executing sentence.Further, for node
oper_ne(!=), the node type of the node is condition, then it can determine that the branch statement where the node terminates,
I.e. node stmt_while-oper_ne (!=) constitute an execution sentence;And for node stmt_if, node type
It for while_body, then can determine that corresponding 3 strips of the node execute chain, and further be executed in chain according to each strip and include
Node node type, antithetical phrase execute chain further disassembled, more refined son execution chain.And then it will
Each sub- execution chain execution sentence corresponding with stmt_while node that stmt_if includes merges, and can be obtained with stmt_
While is other each execution chains of father node.
It is raw successively according to the corresponding node type of each node in a kind of possible implementation of the embodiment of the present application
When at a plurality of sub- execution chain, first can successively judge whether the corresponding node type of each node is preset node type, i.e.,
Judge whether each node is the node for needing to continue dismantling.Wherein, preset node type includes but is not limited to block
(Block), if/else sentence, switch/case sentence, try/catch sentence, Do statement (for, while,
EnhancedFor etc.), expression formula etc..If the corresponding node type of any node is preset node type, to any section
The code information of each child node is parsed in block structure where point, corresponding with the block structure where any node to generate
Son execute chain set, wherein in sub- execution chain set include a plurality of sub- execution chain;If the node type of node is not default
Any one of node type, then the code information of the block structure where any node is parsed, with generate with it is any
The corresponding execution sentence of block structure where node.
Still shown in Fig. 2 (a) for abstract syntax tree, for node stmt_if, node type while_
Body belongs to one of preset node type, then believes the code of each child node in the block structure where the node
Breath is parsed, to obtain the corresponding sub- execution chain set of the block structure.Wherein, the block structure where node stmt_if, refers to
It is using the node as the tree structure of father node, including child node oper_gt (>), the node that node type is if_body
Assign (=), the node assign (=) that node type is else_body and multiple sub- sections after these three nodes
Point, in Fig. 2 (a), the tree structure that multiple nodes in curve are constituted, the as block structure where node stmt_if.From figure
As can be seen that further including two nodes that node type is respectively if_body and else_body in the structural body in 2 (a)
Assign (=) then further solves the code information of each child node in the two nodes respectively block structure at place
Analysis obtains the corresponding sub- execution chain set of block structure.For node oper_ne (!=), node type condition, no
It is preset node type, then (includes directly two child nodes after the node, respectively to the block structure where the node
Variable (b) and constant (0)) code information parsed, obtain corresponding execution sentence.
Step 202, according to the relationship between the node in a plurality of sub- execution chain, a plurality of sub- execution chain is merged into processing,
It generates at least one and always executes chain.
In the present embodiment, after obtaining a plurality of sub- execution chain, can according to the relationship between the node in a plurality of sub- execution chain,
Processing is merged to a plurality of sub- execution chain, obtains at least one total execution chain.
By taking the abstract syntax tree as shown in Fig. 2 (a) as an example, abstract syntax tree shown in (a) according to fig. 2, node stmt_if
Corresponding two strips execute chain, and respectively node type is the corresponding sub- execution of block structure where the node of if_body
Chain and node type are the corresponding sub- execution chain of block structure where the node of else_body;Node stmt_
While also corresponds to two strips and executes chain, and corresponding sub- execution chain and while condition are unsatisfactory for when respectively while condition meets
When corresponding sub- execution chain.Node type is respectively two node assign (=) of if_body and else_body, is section
The child node of point stmt_if, and node stmt_if is the child node of node stmt_while, then it can be by node stmt_if institute
The corresponding sub- execution chain of block structure be incorporated into node stmt_while where the corresponding sub- execution chain of block structure, according to row
Arrange combined mode, available four total execution chains.
It, can be by base for the sequential organization of combination or nesting in a kind of possible implementation of the embodiment of the present application
The execution chain of plinth block structure is combined, and whole execution chain is obtained.As shown in Fig. 4 (a), for an e1 → e2 →...→
The main execution chain of ex →...→ en, wherein it is that two strips execute chain, respectively e2_11 → e2_12 that e2 sentence, which can continue dismantling,
→...→ e2_1x →...→ e2_1n and e2_21 → e2_22 →...→ e2_2x →...→ e2_2n then executes the son after dismantling
Chain is incorporated into main execution chain, obtains two total execution chains as shown in Fig. 4 (b).Further, merging execution chain obtains new
It executes in chain, may include still the sentence that can continue dismantling, then can continue to disassemble disassembled sentence, obtain sub- execution
It is incorporated into main execution chain after chain, obtains new main execution chain, i.e., the dismantling process that son executes chain is a recursive procedure, until nothing
After disassembled sentence, final total execution chain is obtained.
Further, as shown in figure 3, step 103 may include:
Step 203, the chain that executes total to a plurality of sub- execution chain and at least one traverses respectively, with determine in source code whether
Include defect code.
In the present embodiment, obtain after always executing chain, it can be to a plurality of sub- execution chain and at least one obtained total execution
Whether chain carries out traversal analysis respectively, to determine in source code comprising defect code.
The static source code scan method of the present embodiment, by by father node to end child node successively according to each node
Node type generates a plurality of sub- execution chain, and according to the relationship between the node in a plurality of sub- execution chain, a plurality of sub- execution chain is carried out
Merging treatment generates at least one and always executes chain, and then carries out respectively time to the total chain that executes of a plurality of sub- execution chain and at least one
Go through, be capable of detecting when single son execute that chain is normal but multiple sub- execution chains merge after there is abnormal situation, improve defect generation
Code is checked comprehensive, and the accuracy of code scans is improved.
, it is understood that the path executed under different condition is different during program operation.To in this Shen
The execution chain for including in chain set please be executed in a kind of possible implementation of embodiment, can also include the node of each node
Content and status information, so to execute chain in each execution chain traversed carry out analyzing defect code when, can be according to execution
The node content and/or status information of each node in chain, to determine whether source code includes defect code.To which the application proposes
Another static source code scan method, Fig. 5 are the stream of another static source code scan method provided by the embodiment of the present application
Journey schematic diagram.
As shown in figure 5, step 103 may comprise steps of on the basis of embodiment as shown in Figure 1:
Step 301, every execution chain is traversed, between each node in every execution chain of determination node content and/
Or whether status information matches.
Wherein, node content refers to the specific execution content in the corresponding source code of node, such as the corresponding side of node
Method, variable-value etc..In addition, due to executing the possible state during chain contains program operation, then it, can in expression execution chain
To mark out the status information of corresponding sentence, wherein status information can be with bracket " [] " mark in executing chain.
For example, for the conditional expression comprising one with (&&) expression formula, if (LeftExpression&&
RightExpression) If Body else Else Body, corresponding execution chain have 3, are respectively as follows:
[true]Left Expression→[true]Right Expression→If Body
[true]Left Expression→[false]Right Expression→Else Body
[false]Left Expression→Else Body
In this implementation, when being traversed for each execution chain executed in chain set, it can get the bid according to chain is executed
Content, the status information of each node of note be to confirm the node content and status information of each node in every execution chain
It is no to be matched with the node content of other nodes and status information.
Wherein, whether the content between node and status information match, and refer in same execution chain, each node is to same content
Definition should consistent and same variable executions state and each node definition the variable state, should be consistent.
For example, in following execution sentence: e2_11 → e2_12 →...→ e2_1x →...→ e2_1n, if node
The corresponding node content of e2_11 is X==null, and the status information of node e2_11 is true, i.e. node e2_11 is indicated
Variable X is dummy variable, if having invoked any one method of variable X in the node content of node e2_1x, since dummy variable is called
Can dish out null pointer exception when method, may thereby determine that the node content of node e2_1x, have with the node content of other nodes
Conflict.
Step 302, if any bar executes in chain at least one node content and/or the status information not section with other nodes
Point content and/or status information matching, it is determined that source code includes defect code.
In the present embodiment, chain is executed for any bar, is saved when executing the status information of at least one node and front and back in chain
When three-point state information conflicts, it is determined that source code includes defect code.For example, for condition above-mentioned and expression formula, it is corresponding
One execution chain is [true] LeftExpression → [true] RightExpression → IfBody, wherein stateful
[true] LeftExpression, if comprising the node state with this state conflict in IfBody node, such as [false]
LeftExpression, then it is assumed that the status information of the two nodes clashes, and then determines that source code includes defect code.
Further, chain is executed for any bar, when the node state in execution chain has with node content to conflict, then really
Determining source code includes defect code.For example, a corresponding execution chain is [false] for condition above-mentioned and expression formula
LeftExpression → ElseBody, wherein the status information of LeftExpression node is false, at this point, if
Comprising only can just be held under the conditions of the state of node LeftExpression is true in the node content of ElseBody node
Capable content then illustrates that the node state in the execution chain does not match with node content, and then determines that source code includes defect code.
Further, chain is executed for any bar, when having conflict before and after node content, it is determined that source code includes defect generation
Code.Such as execute in chain, after some node, there is the content with this nodal operation content mutual exclusion, then illustrates the execution chain
In comprising the mutual conflicting node of node content, and then determine that source code includes defect code.
Through above-mentioned analysis it is found that when being traversed to execution chain, need to judge respectively to execute in chain between each node
Status information and node content between whether status information matches, whether the node content between each node matches and each node are
No matching, and then just can determine that whether the corresponding source code of execution chain includes defect code.
It further, can also include pair in a kind of possible implementation of the embodiment of the present application, in every execution chain
The source code lines information answered, in order to determine the defects of source code code.To as shown in figure 5, may be used also after step 302
To include:
Step 303, according to the corresponding source code lines information of any execution chain, the defects of source code code is determined.
In the present embodiment, when generating execution chain, the corresponding source code lines information of chain will be executed and carried in executing chain, then
It determines and executes in chain after the status information exception of at least one node, it can be further according to the source code for including in the execution chain
Row information, determines the defects of source code code, in source code, the corresponding code of source code lines information, as defect code.
The static code scan method of the present embodiment, by carrying the status information of each node in executing chain, to every
It executes chain to be traversed, to determine whether the status information in every execution chain between each node is abnormal, and in any execution chain
The node content and/or status information of at least one node, do not match with the node content of other nodes and/or status information
When, determine that source code containing defect information, realizes according to the node content of node and state and detects defect code, improve defect
The convenience and efficiency of code identification;And by carrying source code lines information in executing chain, thus determining that any bar holds
The node content and/or status information of the node content of at least one node and/or status information and other nodes be not in row chain
After matching, according to source code lines information, the defects of source code code is determined, realize the quick positioning of defect code, improve
Defect code detection efficiency.
In order to realize above-described embodiment, the application also proposes a kind of static source code sweeping device.
Fig. 6 is a kind of structural schematic diagram of static source code scanning means provided by the embodiment of the present application.
As shown in fig. 6, the static state source code scanning means 50 may include: acquisition module 510, generation module 520, and time
Go through module 530.Wherein,
Module 510 is obtained, for obtaining the corresponding abstract syntax tree of source code to be scanned.
In the present embodiment, it can be implanted into syntax analyzer in obtaining module 510, it, will be to be scanned using syntax analyzer
Source code is converted to corresponding abstract syntax tree.Wherein, syntax analyzer such as can be ANTLR, PHP-Parser, Eclipse
JDT, Clang, JavaCC etc..
Generation module 520 generates corresponding with abstract syntax tree for parsing to the code information in abstract syntax tree
Execution chain set, wherein execute chain set in every execution chain it is corresponding with an execution route in source code respectively.
Spider module 530, for being traversed to the every execution chain executed in chain set, to determine in source code whether wrap
Containing defect code.
Further, in a kind of possible implementation of the embodiment of the present application, as shown in fig. 7, implementing as shown in Figure 6
On the basis of example, generation module 520 includes:
Generation unit 521, for by father node to end child node, successively according to the corresponding node type of each node,
Generate a plurality of sub- execution chain, wherein it includes at least one node in chain that every strip, which executes,.
In a kind of possible implementation of the embodiment of the present application, generation unit 521 is specifically used for, and successively judges each section
The corresponding node type of point, if be preset node type;If the corresponding node type of any node is preset node class
Type then parses the code information of each child node in the block structure where any node, to generate and any node institute
The corresponding sub- execution chain of block structure;Otherwise, the code information of the block structure where any node is parsed, to generate
Execution sentence corresponding with the block structure where any node.
Combining unit 522, for according to the relationship between the node in a plurality of sub- execution chain, a plurality of sub- execution chain to be closed
And handle, it generates at least one and always executes chain.
In the present embodiment, spider module 530 be specifically used for it is total to a plurality of sub- execution chain and at least one execute chain respectively into
Row traversal.
By, successively according to the node type of each node, generating a plurality of sub- execution chain by father node to end child node,
According to the relationship between the node in a plurality of sub- execution chain, a plurality of sub- execution chain is merged into processing, at least one is generated and always holds
Row chain, and then the total chain that executes of a plurality of sub- execution chain and at least one is traversed respectively, it is capable of detecting when that single son executes
Chain is normal but multiple sub- execution chains merge after there is abnormal situation, improve the comprehensive of defect code investigation, improve code and sweep
The accuracy retouched.
In a kind of possible implementation of the embodiment of the present application, the status information in chain including each node is executed, thus,
As shown in figure 8, on the basis of embodiment as shown in Figure 6, spider module 530 includes:
Traversal Unit 531, for being traversed to every execution chain, with the state between each node in every execution chain of determination
Whether information is abnormal.
Determination unit 532, for determining source code when any bar executes the status information exception of at least one node in chain
Containing defect code.
By carrying the status information of each node in executing chain, chain is executed to media and is traversed, to determine that every is held
Whether the status information in row chain between each node is abnormal, and the status information of at least one node is abnormal in any execution chain
When, it determines that source code containing defect information, realizes according to the state of node and detects defect code, improves defect code identification
Convenience and efficiency.
It further, can also include corresponding source code lines information in every execution chain.To as shown in figure 8, this is quiet
State source code scanning means 50 can also include:
Determining module 540, for determining the defects of source code generation according to the corresponding source code lines information of any execution chain
Code.
By carrying source code lines information in executing chain, the state of at least one node in determining any bar execution chain
After Information abnormity, according to source code lines information, the defects of source code code is determined, realize the quick positioning of defect code,
Improve defect code detection efficiency.
It should be noted that the aforementioned explanation to static source code scan method embodiment is also applied for the embodiment
Static source code scanning means, realization principle is similar, and details are not described herein again.
The static source code scanning means of the present embodiment, by obtaining the corresponding abstract syntax tree of source code to be scanned, to abstract
Code information in syntax tree is parsed, and generates execution chain set corresponding with abstract syntax tree, and then to execution chain set
In every execution chain traversed, whether to determine in source code comprising defect code.It is abstract by being converted to source code as a result,
Syntax tree, and abstract syntax tree itself contains all information of source code, so as to directly obtain institute according to abstract syntax tree
Possible execution chain, and then every execution chain is traversed, that is, it can determine defect code, analytic process is simple, reliable, mentions
High analysis efficiency.
In order to realize above-described embodiment, the application also proposes a kind of computer equipment, comprising: processor and memory.Its
In, processor runs journey corresponding with executable program code by reading the executable program code stored in memory
Sequence, for realizing static source code scan method as in the foregoing embodiment.
Fig. 9 is the structural schematic diagram of computer equipment provided by the embodiment of the present application, shows and is suitable for being used to realizing this
Apply for the block diagram of the exemplary computer device 90 of embodiment.The computer equipment 90 that Fig. 9 is shown is only an example, no
The function and use scope for coping with the embodiment of the present application bring any restrictions.
As shown in figure 9, computer equipment 90 is showed in the form of general purpose computing device.The component of computer equipment 90 can
To include but is not limited to: one or more processor or processing unit 906, system storage 910 connect not homologous ray group
The bus 908 of part (including system storage 910 and processing unit 906).
Bus 908 indicates one of a few class bus structures or a variety of, including memory bus or Memory Controller,
Peripheral bus, graphics acceleration port, processor or the local bus using any bus structures in a variety of bus structures.It lifts
For example, these architectures include but is not limited to industry standard architecture (Industry Standard
Architecture;Hereinafter referred to as: ISA) bus, microchannel architecture (Micro Channel Architecture;Below
Referred to as: MAC) bus, enhanced isa bus, Video Electronics Standards Association (Video Electronics Standards
Association;Hereinafter referred to as: VESA) local bus and peripheral component interconnection (Peripheral Component
Interconnection;Hereinafter referred to as: PCI) bus.
Computer equipment 90 typically comprises a variety of computer system readable media.These media can be it is any can be by
The usable medium that computer equipment 90 accesses, including volatile and non-volatile media, moveable and immovable medium.
System storage 910 may include the computer system readable media of form of volatile memory, such as deposit at random
Access to memory (Random Access Memory;Hereinafter referred to as: RAM) 911 and/or cache memory 912.Computer is set
Standby 90 may further include other removable/nonremovable, volatile/non-volatile computer system storage mediums.Only
As an example, storage system 913 can be used for reading and writing immovable, non-volatile magnetic media (Fig. 9 do not show, commonly referred to as
" hard disk drive ").Although being not shown in Fig. 9, can provide for reading removable non-volatile magnetic disk (such as " floppy disk ")
The disc driver write, and to removable anonvolatile optical disk (such as: compact disc read-only memory (Compact Disc Read
Only Memory;Hereinafter referred to as: CD-ROM), digital multi CD-ROM (Digital Video Disc Read Only
Memory;Hereinafter referred to as: DVD-ROM) or other optical mediums) read-write CD drive.In these cases, each driving
Device can be connected by one or more data media interfaces with bus 908.System storage 910 may include at least one
Program product, the program product have one group of (for example, at least one) program module, these program modules are configured to perform this
Apply for the function of each embodiment.
Computer-readable signal media may include in a base band or as carrier wave a part propagate data-signal,
Wherein carry computer-readable program code.The data-signal of this propagation can take various forms, including --- but
It is not limited to --- electromagnetic signal, optical signal or above-mentioned any appropriate combination.Computer-readable signal media can also be
Any computer-readable medium other than computer readable storage medium, which can send, propagate or
Transmission is for by the use of instruction execution system, device or device or program in connection.
The program code for including on computer-readable medium can transmit with any suitable medium, including --- but it is unlimited
In --- wireless, electric wire, optical cable, RF etc. or above-mentioned any appropriate combination.
Can with one or more programming languages or combinations thereof come write for execute the application operation computer
Program code, described program design language include object oriented program language-such as Java, Smalltalk, C++,
It further include conventional procedural programming language-such as " C " language or similar programming language.Program code can be with
It fully executes, partly execute on the user computer on the user computer, being executed as an independent software package, portion
Divide and partially executes or executed on a remote computer or server completely on the remote computer on the user computer.
Program/utility 914 with one group of (at least one) program module 9140, can store and deposit in such as system
In reservoir 910, such program module 9140 includes but is not limited to operating system, one or more application program, Qi Tacheng
It may include the realization of network environment in sequence module and program data, each of these examples or certain combination.Program
Module 9140 usually executes function and/or method in embodiments described herein.
Computer equipment 90 can also be with one or more external equipments 10 (such as keyboard, sensing equipment, display 100
Deng) communication, can also be enabled a user to one or more equipment interact with the terminal device 90 communicate, and/or with make
Any equipment (such as network interface card, the modulation /demodulation that the computer equipment 90 can be communicated with one or more of the other calculating equipment
Device etc.) communication.This communication can be carried out by input/output (I/O) interface 902.Also, computer equipment 90 can be with
Pass through network adapter 900 and one or more network (such as local area network (Local Area Network;Hereinafter referred to as:
LAN), wide area network (Wide Area Network;Hereinafter referred to as: WAN) and/or public network, for example, internet) communication.Such as figure
Shown in 9, network adapter 900 is communicated by bus 908 with other modules of computer equipment 90.Although should be understood that in Fig. 9
It is not shown, other hardware and/or software module can be used in conjunction with computer equipment 90, including but not limited to: microcode, equipment
Driver, redundant processing unit, external disk drive array, RAID system, tape drive and data backup storage system
Deng.
Processing unit 906 by the program that is stored in system storage 910 of operation, thereby executing various function application with
And data processing, such as realize the static source code scan method referred in previous embodiment.
In order to realize above-described embodiment, the application also proposes a kind of non-transitorycomputer readable storage medium, deposits thereon
Computer program is contained, when which is executed by processor, realizes static source code scan method as in the foregoing embodiment.
In order to realize above-described embodiment, the application also proposes a kind of computer program product, when the computer program produces
When instruction in product is executed by processor, static source code scan method as in the foregoing embodiment is realized.
In the description of this specification, reference term " one embodiment ", " some embodiments ", " example ", " specifically show
The description of example " or " some examples " etc. means specific features, structure, material or spy described in conjunction with this embodiment or example
Point is contained at least one embodiment or example of the application.In the present specification, schematic expression of the above terms are not
It must be directed to identical embodiment or example.Moreover, particular features, structures, materials, or characteristics described can be in office
It can be combined in any suitable manner in one or more embodiment or examples.In addition, without conflicting with each other, the skill of this field
Art personnel can tie the feature of different embodiments or examples described in this specification and different embodiments or examples
It closes and combines.
In addition, term " first ", " second " are used for descriptive purposes only and cannot be understood as indicating or suggesting relative importance
Or implicitly indicate the quantity of indicated technical characteristic.Define " first " as a result, the feature of " second " can be expressed or
Implicitly include at least one this feature.In the description of the present application, the meaning of " plurality " is at least two, such as two, three
It is a etc., unless otherwise specifically defined.
Any process described otherwise above or method description are construed as in flow chart or herein, and expression includes
It is one or more for realizing custom logic function or process the step of executable instruction code module, segment or portion
Point, and the range of the preferred embodiment of the application includes other realization, wherein can not press shown or discussed suitable
Sequence, including according to related function by it is basic simultaneously in the way of or in the opposite order, to execute function, this should be by the application
Embodiment person of ordinary skill in the field understood.
Expression or logic and/or step described otherwise above herein in flow charts, for example, being considered use
In the order list for the executable instruction for realizing logic function, may be embodied in any computer-readable medium, for
Instruction execution system, device or equipment (such as computer based system, including the system of processor or other can be held from instruction
The instruction fetch of row system, device or equipment and the system executed instruction) it uses, or combine these instruction execution systems, device or set
It is standby and use.For the purpose of this specification, " computer-readable medium ", which can be, any may include, stores, communicates, propagates or pass
Defeated program is for instruction execution system, device or equipment or the dress used in conjunction with these instruction execution systems, device or equipment
It sets.The more specific example (non-exhaustive list) of computer-readable medium include the following: there is the electricity of one or more wirings
Interconnecting piece (electronic device), portable computer diskette box (magnetic device), random access memory (RAM), read-only memory
(ROM), erasable edit read-only storage (EPROM or flash memory), fiber device and portable optic disk is read-only deposits
Reservoir (CDROM).In addition, computer-readable medium can even is that the paper that can print described program on it or other are suitable
Medium, because can then be edited, be interpreted or when necessary with it for example by carrying out optical scanner to paper or other media
His suitable method is handled electronically to obtain described program, is then stored in computer storage.
It should be appreciated that each section of the application can be realized with hardware, software, firmware or their combination.Above-mentioned
In embodiment, software that multiple steps or method can be executed in memory and by suitable instruction execution system with storage
Or firmware is realized.Such as, if realized with hardware in another embodiment, following skill well known in the art can be used
Any one of art or their combination are realized: have for data-signal is realized the logic gates of logic function from
Logic circuit is dissipated, the specific integrated circuit with suitable combinational logic gate circuit, programmable gate array (PGA), scene can compile
Journey gate array (FPGA) etc..
Those skilled in the art are understood that realize all or part of step that above-described embodiment method carries
It suddenly is that relevant hardware can be instructed to complete by program, the program can store in a kind of computer-readable storage medium
In matter, which when being executed, includes the steps that one or a combination set of embodiment of the method.
It, can also be in addition, can integrate in a processing module in each functional unit in each embodiment of the application
It is that each unit physically exists alone, can also be integrated in two or more units in a module.Above-mentioned integrated mould
Block both can take the form of hardware realization, can also be realized in the form of software function module.The integrated module is such as
Fruit is realized and when sold or used as an independent product in the form of software function module, also can store in a computer
In read/write memory medium.
Storage medium mentioned above can be read-only memory, disk or CD etc..Although having been shown and retouching above
Embodiments herein is stated, it is to be understood that above-described embodiment is exemplary, and should not be understood as the limit to the application
System, those skilled in the art can be changed above-described embodiment, modify, replace and become within the scope of application
Type.
Claims (10)
1. a kind of static state source code scan method characterized by comprising
Obtain the corresponding abstract syntax tree of source code to be scanned;
Code information in the abstract syntax tree is parsed, execution chain collection corresponding with the abstract syntax tree is generated
It closes, wherein it is corresponding with an execution route in source code respectively to execute every execution chain in chain set;
Every execution chain in the execution chain set is traversed, whether to include defect code in the determination source code.
2. the method as described in claim 1, which is characterized in that the code information in the abstract syntax tree solves
Analysis generates execution chain set corresponding with the abstract syntax tree, comprising:
By father node to end child node, successively according to the corresponding node type of each node, a plurality of sub- execution chain is generated,
In, it includes at least one node in chain that every strip, which executes,;
According to the relationship between the node in a plurality of sub- execution chain, a plurality of sub- execution chain is merged into processing, is generated
At least one total execution chain;
Every execution chain in the execution chain set traverses, comprising:
The a plurality of sub- execution chain and at least one total chain that executes are traversed respectively.
3. method according to claim 2, which is characterized in that it is described successively according to the corresponding node type of each node, it is raw
At a plurality of sub- execution chain, comprising:
Successively judge the corresponding node type of each node, if be preset node type;
If the corresponding node type of any node is preset node type, to every in the block structure where any node
The code information of a child node is parsed, to generate sub- execution chain collection corresponding with the block structure where any node
It closes;
Otherwise, the code information of the block structure where any node is parsed, to generate and any node institute
The corresponding execution sentence of block structure.
4. the method as described in claim 1, which is characterized in that the node content and state executed in chain including each node
Information;
Whether every execution chain in the execution chain set traverses, to include defect generation in the determination source code
Code, comprising:
Every execution chain is traversed, between each node in every execution chain of determination node content and/or status information be
No matching;
If any bar executes the node content of at least one node and/or the status information not node content with other nodes in chain
And/or status information matching, it is determined that the source code contains defect code.
5. method as claimed in claim 4, which is characterized in that include that corresponding source code lines are believed in every execution chain
Breath;
If any bar executes in chain after the status information exception of at least one node, further includes:
According to the corresponding source code lines information of any execution chain, the defects of source code code is determined.
6. a kind of static state source code scanning means characterized by comprising
Module is obtained, for obtaining the corresponding abstract syntax tree of source code to be scanned;
Generation module generates and the abstract syntax tree pair for parsing to the code information in the abstract syntax tree
The execution chain set answered, wherein it is corresponding with an execution route in source code respectively to execute every execution chain in chain set;
Spider module, for it is described execution chain set in every execution chain traverse, in the determination source code whether
Include defect code.
7. device as claimed in claim 6, which is characterized in that the generation module, comprising:
Generation unit, for successively according to the corresponding node type of each node, generating a plurality of by father node to end child node
Son executes chain, wherein it includes at least one node in chain that every strip, which executes,;
Combining unit, for according to the relationship between the node in a plurality of sub- execution chain, a plurality of sub- execution chain to be carried out
Merging treatment generates at least one and always executes chain;
The spider module, is specifically used for:
The a plurality of sub- execution chain and at least one total chain that executes are traversed respectively.
8. device as claimed in claim 7, which is characterized in that the generation unit is specifically used for:
Successively judge the corresponding node type of each node, if be preset node type;
If the corresponding node type of any node is preset node type, to every in the block structure where any node
The code information of a child node is parsed, to generate sub- execution chain corresponding with the block structure where any node;
Otherwise, the code information of the block structure where any node is parsed, to generate and any node institute
The corresponding execution sentence of block structure.
9. a kind of computer equipment, which is characterized in that including processor and memory;
Wherein, the processor is run by reading the executable program code stored in the memory can be performed with described
The corresponding program of program code, for realizing static source code scan method according to any one of claims 1 to 5.
10. a kind of non-transitorycomputer readable storage medium, is stored thereon with computer program, which is characterized in that the program
Static source code scan method according to any one of claims 1 to 5 is realized when being executed by processor.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810915002.1A CN109117633B (en) | 2018-08-13 | 2018-08-13 | Static source code scanning method and device, computer equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810915002.1A CN109117633B (en) | 2018-08-13 | 2018-08-13 | Static source code scanning method and device, computer equipment and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117633A true CN109117633A (en) | 2019-01-01 |
CN109117633B CN109117633B (en) | 2022-11-04 |
Family
ID=64853182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810915002.1A Active CN109117633B (en) | 2018-08-13 | 2018-08-13 | Static source code scanning method and device, computer equipment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117633B (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231937A (en) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | Script defects scanning method, device, computer equipment and storage medium |
CN111240772A (en) * | 2020-01-22 | 2020-06-05 | 腾讯科技(深圳)有限公司 | Data processing method and device based on block chain and storage medium |
CN111475809A (en) * | 2020-04-09 | 2020-07-31 | 杭州奇盾信息技术有限公司 | Script confusion detection method and device, computer equipment and storage medium |
CN112069052A (en) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | Abnormal object detection method, device, equipment and storage medium |
CN113157597A (en) * | 2020-07-08 | 2021-07-23 | 北京嘀嘀无限科技发展有限公司 | Structure analysis method, structure analysis device, electronic equipment and storage medium |
CN113268243A (en) * | 2021-05-11 | 2021-08-17 | 网易(杭州)网络有限公司 | Memory prediction method and device, storage medium and electronic equipment |
CN113778710A (en) * | 2021-09-01 | 2021-12-10 | 杭州视洞科技有限公司 | Gateway tree-shaped execution chain |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661543A (en) * | 2008-08-28 | 2010-03-03 | 西门子(中国)有限公司 | Method and device for detecting security flaws of software source codes |
CN102231134A (en) * | 2011-07-29 | 2011-11-02 | 哈尔滨工业大学 | Method for detecting redundant code defects based on static analysis |
CN104850493A (en) * | 2015-04-24 | 2015-08-19 | 百度在线网络技术(北京)有限公司 | Method and device for detecting loophole of source code |
WO2016085272A1 (en) * | 2014-11-28 | 2016-06-02 | 주식회사 파수닷컴 | Method for reducing false alarms in detecting source code error, computer program therefor, recording medium thereof |
CN106371997A (en) * | 2016-09-07 | 2017-02-01 | 网易(杭州)网络有限公司 | Code checking method and device |
CN106445804A (en) * | 2016-08-24 | 2017-02-22 | 北京奇虎测腾安全技术有限公司 | Source code cloud detection system and method based on serialization intermediate representation |
CN106547520A (en) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | A kind of code path analysis method and device |
-
2018
- 2018-08-13 CN CN201810915002.1A patent/CN109117633B/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661543A (en) * | 2008-08-28 | 2010-03-03 | 西门子(中国)有限公司 | Method and device for detecting security flaws of software source codes |
CN102231134A (en) * | 2011-07-29 | 2011-11-02 | 哈尔滨工业大学 | Method for detecting redundant code defects based on static analysis |
WO2016085272A1 (en) * | 2014-11-28 | 2016-06-02 | 주식회사 파수닷컴 | Method for reducing false alarms in detecting source code error, computer program therefor, recording medium thereof |
CN104850493A (en) * | 2015-04-24 | 2015-08-19 | 百度在线网络技术(北京)有限公司 | Method and device for detecting loophole of source code |
CN106547520A (en) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | A kind of code path analysis method and device |
CN106445804A (en) * | 2016-08-24 | 2017-02-22 | 北京奇虎测腾安全技术有限公司 | Source code cloud detection system and method based on serialization intermediate representation |
CN106371997A (en) * | 2016-09-07 | 2017-02-01 | 网易(杭州)网络有限公司 | Code checking method and device |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231937A (en) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | Script defects scanning method, device, computer equipment and storage medium |
CN112069052A (en) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | Abnormal object detection method, device, equipment and storage medium |
CN112069052B (en) * | 2019-06-11 | 2024-04-12 | 腾讯科技(深圳)有限公司 | Abnormal object detection method, device, equipment and storage medium |
CN111240772A (en) * | 2020-01-22 | 2020-06-05 | 腾讯科技(深圳)有限公司 | Data processing method and device based on block chain and storage medium |
CN111475809A (en) * | 2020-04-09 | 2020-07-31 | 杭州奇盾信息技术有限公司 | Script confusion detection method and device, computer equipment and storage medium |
CN111475809B (en) * | 2020-04-09 | 2023-10-20 | 杭州奇盾信息技术有限公司 | Script confusion detection method, script confusion detection device, computer equipment and storage medium |
CN113157597A (en) * | 2020-07-08 | 2021-07-23 | 北京嘀嘀无限科技发展有限公司 | Structure analysis method, structure analysis device, electronic equipment and storage medium |
CN113268243A (en) * | 2021-05-11 | 2021-08-17 | 网易(杭州)网络有限公司 | Memory prediction method and device, storage medium and electronic equipment |
CN113268243B (en) * | 2021-05-11 | 2024-02-23 | 网易(杭州)网络有限公司 | Memory prediction method and device, storage medium and electronic equipment |
CN113778710A (en) * | 2021-09-01 | 2021-12-10 | 杭州视洞科技有限公司 | Gateway tree-shaped execution chain |
CN113778710B (en) * | 2021-09-01 | 2024-04-02 | 杭州视洞科技有限公司 | Tree-shaped execution chain of gateway |
Also Published As
Publication number | Publication date |
---|---|
CN109117633B (en) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117633A (en) | Static source code scan method, device, computer equipment and storage medium | |
US8099721B2 (en) | Parsing of declarations in all branches of preprocessor conditionals | |
US6434742B1 (en) | Symbol for automatically renaming symbols in files during the compiling of the files | |
CN112104709B (en) | Intelligent contract processing method, device, medium and electronic equipment | |
US20230035910A1 (en) | Method, system and device for parallel processing of data, and storage medium | |
US8276130B2 (en) | Method and compiler of compiling a program | |
US10802825B2 (en) | Cognitive software porting assistant system | |
US20160306736A1 (en) | Translation verification testing | |
CN101751281A (en) | System and method for generating compiler | |
CN113656590B (en) | Industry map construction method and device, electronic equipment and storage medium | |
CN110515838A (en) | Method and system for detecting software defects based on topic model | |
CN111832298A (en) | Quality inspection method, device and equipment for medical records and storage medium | |
CN104375875A (en) | Method for compiler optimization of applications and compiler | |
CN115292058A (en) | Service scene level service topology generation method and device and electronic equipment | |
US20130007722A1 (en) | Method, system and program storage device that provide for automatic programming language grammar partitioning | |
US10656926B2 (en) | Compact type layouts | |
CN114780100A (en) | Compiling method, electronic device, and storage medium | |
CN112988163B (en) | Intelligent adaptation method, intelligent adaptation device, intelligent adaptation electronic equipment and intelligent adaptation medium for programming language | |
CN109636619B (en) | Method and device for backtesting quantization platform, electronic equipment and readable medium | |
US9940105B2 (en) | Scalable code division and workflow chart | |
US11995562B2 (en) | Integrating documentation knowledge with log mining for system diagnosis | |
CN112509692A (en) | Method, apparatus, electronic device and storage medium for matching medical expressions | |
US11797538B2 (en) | Message correlation extraction for mainframe operation | |
CN112286578A (en) | Method, apparatus, device and computer-readable storage medium executed by computing device | |
WO2023274092A1 (en) | Program compiling method and apparatus |
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 |