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 PDF

Info

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
Application number
CN201810915002.1A
Other languages
Chinese (zh)
Other versions
CN109117633B (en
Inventor
张全
李彦成
彭云鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201810915002.1A priority Critical patent/CN109117633B/en
Publication of CN109117633A publication Critical patent/CN109117633A/en
Application granted granted Critical
Publication of CN109117633B publication Critical patent/CN109117633B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static 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

Static source code scan method, device, computer equipment and storage medium
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.
CN201810915002.1A 2018-08-13 2018-08-13 Static source code scanning method and device, computer equipment and storage medium Active CN109117633B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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