CN115048105A - Method and system for complementing code, electronic device and storage medium - Google Patents

Method and system for complementing code, electronic device and storage medium Download PDF

Info

Publication number
CN115048105A
CN115048105A CN202210688854.8A CN202210688854A CN115048105A CN 115048105 A CN115048105 A CN 115048105A CN 202210688854 A CN202210688854 A CN 202210688854A CN 115048105 A CN115048105 A CN 115048105A
Authority
CN
China
Prior art keywords
completion
code
preset
model
result
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.)
Pending
Application number
CN202210688854.8A
Other languages
Chinese (zh)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210688854.8A priority Critical patent/CN115048105A/en
Publication of CN115048105A publication Critical patent/CN115048105A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention discloses a method and a system for complementing codes, electronic equipment and a storage medium, and relates to the field of artificial intelligence, wherein the complementing method comprises the following steps: receiving a code completion request, analyzing a current coding environment to obtain comprehensive coding information, inputting the comprehensive coding information into a preset completion model for code completion to obtain a completion result, verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and a weighted value of each code completion result, sorting the plurality of code completion results based on the weighted value of each code completion result, and rendering the code completion results into a preset code completion candidate frame according to the sorting result. The invention solves the technical problem of low supplement accuracy rate caused by the fact that the code supplement result obtained in the related technology does not accord with the grammar rule constraint.

Description

Method and system for complementing code, electronic device and storage medium
Technical Field
The invention relates to the field of artificial intelligence, in particular to a code completion method and system, electronic equipment and a storage medium.
Background
With the rapid development of artificial intelligence technology, the deep learning technology can provide intelligent transformation support for various industries, and the fusion innovation brought by the artificial intelligence technology under the intelligent auxiliary programming scene in the field of intelligent research and development becomes an important way for accelerating software landing and technology iteration. Under the scene, the deep learning model provides a real-time deduction result for a code completion prompt in the coding process, and by utilizing the advantages of high prediction precision, long completion result and the like of deep learning, the coding efficiency of developers can be greatly improved, and the overall coding experience is improved.
For an intelligent aided programming scenario, an Encoder-Decoder model (Encoder-Decoder model) framework is often adopted as a bottom-layer architecture to construct a code completion model. In the related art, there are generally two specific structures for the code completion model: (1) constructing a completion model based on RNN (recurrent neural network) neural networks (such as LSTM (long-short-term memory neural network), BilTM (bidirectional long-short-term memory neural network) and other long-short-term memory neural networks); (2) and constructing a completion model based on a Transformer (a neural network structure) neural network.
However, although both completion model implementations can use semantic coding information within the pre-trained model to implement the code completion prediction deduction, however, the predicted completion code is only subjected to model deduction according to a semantic environment and a coding scene, and lacks the grammatical rule constraint of the programming language, so that problems that the prompted code is too long, the completion prompting content does not meet the grammatical specification of the programming language, and the prompt repeated code (for example, a variable int value1 ═ 1 is already defined in the code, and a definition statement int value ═ 1 is still prompted) is easy to occur, and compiling is not passed due to the lack of definition elements in a long sentence of the prompt code (for example, a for loop lacks a corresponding loop judgment condition), and the like, occur, therefore, the codes prompted by the model need to spend longer time to carefully screen, select and modify the prompted contents, and therefore, the coding cost of developers is increased, the coding completion accuracy is low, and the programming efficiency is low.
In view of the above problems, no effective solution has been proposed.
Disclosure of Invention
The embodiment of the invention provides a code completion method and a system thereof, electronic equipment and a storage medium, which at least solve the technical problem of low supplement accuracy rate caused by the fact that a code completion result obtained in the related technology does not accord with grammatical rule constraint.
According to an aspect of an embodiment of the present invention, there is provided a method for completing a code, including: receiving a code completion request, wherein the code completion request carries a current coding environment; analyzing the current coding environment to obtain comprehensive coding information, and inputting the comprehensive coding information into a preset completion model to complete codes to obtain a completion result; verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and a weight value of each code completion result; and sequencing the plurality of code completion results based on the weight value of each code completion result, and rendering the code completion results to a preset code completion candidate frame according to the sequencing results.
Optionally, before receiving the code completion request, the method further includes: acquiring a code data set, and cleaning the code data set to obtain a target code data set; extracting semantic information abstracts in the target code data set; splitting the target code data set based on the semantic information abstract to obtain a training data set and a verification data set; training the training data set by adopting a preset neural network to obtain an initial completion model; based on the verification data set, verifying the initial completion model to obtain a verification result, wherein the verification result carries the accuracy; and determining that the initial completion model is trained to be completed under the condition that the accuracy is greater than a preset threshold value, so as to obtain the preset completion model.
Optionally, the step of analyzing the current coding environment to obtain the integrated coding information includes: analyzing the current coding environment to obtain current coding environment information, wherein the current coding environment information includes at least one of the following: programming language, coding scenario, programming architecture; extracting context coding information of the current coding environment, wherein the context coding information at least comprises: code information of a current coding line and code information of a current coding file; and obtaining the comprehensive coding information based on the current coding environment information and the context coding information.
Optionally, before verifying the completion result based on a preset verification model, the method further includes: carrying out syntax pre-compiling on a preset code to obtain a programming language rule abstract; establishing the preset verification model by adopting a preset isolation strategy based on the programming language rule abstract, wherein the preset verification model comprises the following steps: a grammar rule vector.
Optionally, the step of verifying the completion result based on a preset verification model includes: adding the grammar rule vector into a vector space formed in the process of code completion to obtain a check vector space; performing dimension reduction operation on the check vector space by adopting a preset dimension reduction strategy to obtain a dimension reduction vector space; calculating a correlation between the grammar rule vector and a complementary codevector in the reduced-dimension vector space; deleting the complementing code vectors indicated by the correlation smaller than a preset correlation threshold from the dimension-reduced vector space to obtain a target dimension-reduced vector space; the dimension of the target dimension reduction vector space is increased to the dimension before dimension reduction, and a target vector space is obtained; and obtaining a plurality of verified code completion results based on the target vector space.
Optionally, after obtaining the verified multiple code completion results and the weight value of each code completion result, the method further includes: acquiring a preset compiling strategy, wherein the preset compiling strategy at least comprises the following steps: compiling a time type checking strategy and a runtime type checking strategy; based on the preset compiling strategy, compiling and checking the multiple code completion results, wherein the compiling and checking types comprise: function parameter check, parameter name repeated check, class name repeated check and parameter type check.
According to another aspect of the embodiments of the present invention, there is also provided a system for completing a code, including: the coding scene analysis module is used for receiving a code completion request, analyzing the current coding environment carried in the code completion request to obtain comprehensive coding information, and transmitting the comprehensive coding information to the code completion model deduction module; a code completion model deduction module, connected to the coding scene analysis module, configured to receive the comprehensive coding information, input the comprehensive coding information into a preset completion model for code completion to obtain a completion result, and verify the completion result based on a preset verification model to obtain multiple verified code completion results and a weight value of each code completion result; the grammar information checking module is connected with the code completion model deduction module and the completion result output module and is used for issuing the preset checking model to the code completion model deduction module and issuing a preset compiling strategy to the completion result output module; a completion result output module connected to the code completion model deduction module and configured to receive the preset compilation strategy, perform compilation verification on the plurality of code completion results based on the preset compilation strategy, and transmit the compiled and verified code completion results and a weight value of each code completion result to a rendering module; and the rendering module is connected with the completion result output module and used for sequencing the plurality of code completion results based on the weight value of each code completion result and rendering the code completion results to a preset code completion candidate frame according to the sequencing result.
Optionally, the completion system further comprises: and the code completion model training module is connected with the code completion model deduction module and used for training the preset completion model based on a code data set and sending the preset completion model to the code completion model deduction module.
According to another aspect of the embodiments of the present invention, a computer-readable storage medium is further provided, where the computer-readable storage medium includes a stored computer program, and when the computer program runs, a device on which the computer-readable storage medium is located is controlled to execute the method for completing the code.
According to another aspect of embodiments of the present invention, there is also provided an electronic device, including one or more processors and a memory for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors are caused to implement the method for complementing code as described above.
In the disclosure, a code completion request is received, a current coding environment is analyzed to obtain comprehensive coding information, the comprehensive coding information is input into a preset completion model to perform code completion to obtain a completion result, the completion result is verified based on a preset verification model to obtain a plurality of verified code completion results and a weighted value of each code completion result, the plurality of code completion results are sorted based on the weighted value of each code completion result, and the code completion result is rendered into a preset code completion candidate frame according to the sorting result. In the application, the comprehensive coding information obtained by analyzing the current coding environment is input into the preset completion model to perform code completion deduction, a completion result is obtained, then the completion result is verified through the preset verification model, a plurality of verified code completion results and the weight value of each code completion result are obtained, the code completion results are sorted according to the weight values, the sorted code completion results are rendered into the preset code completion candidate frame, the code completion results can be made to accord with grammar rule constraints, the quality, the executable rate and the accuracy rate of the completion codes can be effectively improved, and the technical problem that the supplement accuracy rate is low due to the fact that the code completion results obtained in the related technology do not accord with the grammar rule constraints is solved.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the invention without limiting the invention. In the drawings:
FIG. 1 is a flow diagram of an alternative method of completing code in accordance with an embodiment of the present invention;
FIG. 2 is a schematic diagram of an alternative code completion system according to an embodiment of the present invention;
FIG. 3 is a diagram illustrating the structure of an alternative code completion model training module 1 according to an embodiment of the present invention;
fig. 4 is a schematic diagram of an alternative coding scene analysis module 2 structure according to an embodiment of the present invention;
fig. 5 is a schematic diagram of an alternative structure of the code completion model deduction module 3 according to the embodiment of the present invention;
fig. 6 is a diagram illustrating an alternative structure of the syntax information checking module 4 according to an embodiment of the present invention;
FIG. 7 is a diagram illustrating an alternative structure of the completion result output module 5 according to an embodiment of the present invention;
FIG. 8 is a diagram illustrating an alternative rendering module 6 architecture, according to an embodiment of the present invention;
FIG. 9 is a flow diagram of an alternative code completion request process according to an embodiment of the invention;
fig. 10 is a block diagram of a hardware structure of an electronic device (or a mobile device) for a completion method of a code according to an embodiment of the present invention.
Detailed Description
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that the terms "first," "second," and the like in the description and claims of the present invention and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the invention described herein are capable of operation in sequences other than those illustrated or described herein. Moreover, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
To facilitate understanding of the invention by those skilled in the art, some terms or nouns referred to in the embodiments of the invention are explained below:
a Recurrent Neural Network (RNN) is a type of Recurrent Neural Network (Recurrent Neural Network) in which sequence data is input and recursion is performed in the evolution direction of the sequence, and all nodes (Recurrent units) are connected in a chain manner.
A Long Short-Term Memory neural network (LSTM), which is a time-cycle neural network and is used to solve the problems of general RNNs, and general RNNs have a repetitive neural network module and are connected in a chain form.
A Bidirectional Long Short-Term Memory neural network (BilSTM) is formed by combining a forward LSTM and a backward LSTM and is used for extracting deep-level coding information.
The Attention mechanism (Attention mechanism), i.e. a technique that enables a model to pay Attention to important information and fully learn and extract information therein, is applicable to any sequence model.
An Encoder-decoder (Encoder-decoder) network model is a common model framework in deep learning, the Encoder and decoder parts can be any characters, voice, images, videos and the like, and the model can adopt various structures such as CNN, RNN, BRNN (bidirectional recurrent neural network) and GRU (recurrent neural network) and the like to provide an End-to-End learning framework for various network models.
The Transformer network model is a new neural network structure, which is based on Attention mechanism only, abandons the traditional cyclic or convolutional neural network structure, and can use the full Attention structure to replace the LSTM model.
And (3) visualizing the high-dimensional data, wherein when the high-dimensional data is subjected to data analysis, a data dimension reduction algorithm is used because the data cannot be clearly classified in a high-dimensional space, so that the feature distribution of the data in a low-dimensional space is clear and visible.
And (3) code completion model: the artificial intelligence model is trained by using a deep learning network and comprises code information and semantic information of a current coding scene, and the artificial intelligence model is mainly used for providing real-time code prompt completion service during coding.
An Integrated Development Environment (IDE) is an application program used for providing a program Development Environment, and includes tools such as a code editor, a compiler, a debugger, and a graphical user interface.
It should be noted that the method and system for completing a code in the present disclosure may be used in the field of artificial intelligence to complete a code, and may also be used in any field other than the field of artificial intelligence to complete a code.
It should be noted that the relevant information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for presentation, analyzed data, etc.) referred to in the present disclosure are information and data authorized by the user or sufficiently authorized by each party. For example, an interface is provided between the system and the relevant user or institution, and before obtaining the relevant information, an obtaining request needs to be sent to the user or institution through the interface, and after receiving the consent information fed back by the user or institution, the relevant information needs to be obtained.
The embodiments of the invention described below may be applied to various systems/applications/devices that complement code. The invention provides a code completion method with grammar check and capable of effectively improving the quality, the executable rate and the accuracy of a completed code, which can effectively solve the problems that the grammar problem of a code completion result cannot be compiled due to the lack of semantic grammar check in the related technology, so that repeated revising and checking are needed.
The invention can solve the problems that the completion code only accords with natural semantic information and does not accord with the grammar of the programming language (for example, for loop grammar error, confusion of class effect domain definition (similar to grammar error red line automatically prompted by IDE during coding) and the like) through the code grammar rule pre-training model (namely, the preset compiling strategy) and can solve the compiling problems that the code grammar rule pre-training model cannot eliminate (similar to prompting error reporting during compiling but not discovering error during compiling) that the variable definition is legal but the variable name is repeated, the function parameter types are lacked or the quantity is not correct, the return value is lacked and the like through the preset grammar rule (namely, the preset compiling strategy).
According to the embodiments of the invention, by using the code grammar rule pre-training model and the preset grammar rule, the problems that the coding cost of developers is increased, the coding completion accuracy is low and the programming efficiency is low due to the fact that the result provided by the code completion prediction lacks self grammar constraint check of a programming language and needs to be repeatedly modified and carefully screened can be effectively solved.
The present invention will be described in detail with reference to examples.
Example one
In accordance with an embodiment of the present invention, a method embodiment of complementing code is provided, it being noted that the steps illustrated in the flowchart of the drawings may be performed in a computer system, such as a set of computer-executable instructions, and that, although a logical order is illustrated in the flowchart, in some cases, the steps illustrated or described may be performed in an order different than presented herein.
Fig. 1 is a flowchart of an alternative method for completing a code according to an embodiment of the present invention, and as shown in fig. 1, the method includes the following steps:
step S101, a code completion request is received, wherein the code completion request carries a current coding environment.
And S102, analyzing the current coding environment to obtain comprehensive coding information, and inputting the comprehensive coding information into a preset completion model to complete codes to obtain a completion result.
And S103, verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and the weight value of each code completion result.
And step S104, sequencing the plurality of code completion results based on the weight value of each code completion result, and rendering the code completion results to a preset code completion candidate frame according to the sequencing results.
Through the steps, a code completion request can be received, the current coding environment is analyzed to obtain comprehensive coding information, the comprehensive coding information is input into a preset completion model to be subjected to code completion to obtain a completion result, the completion result is verified based on a preset verification model to obtain a plurality of verified code completion results and the weight value of each code completion result, the plurality of code completion results are sorted based on the weight value of each code completion result, and the code completion results are rendered into a preset code completion candidate frame according to the sorting result. In the embodiment of the invention, the comprehensive coding information obtained by analyzing the current coding environment is input into the preset completion model to perform code completion deduction, so that a completion result is obtained, then the completion result is verified through the preset verification model, so that a plurality of verified code completion results and the weight value of each code completion result are obtained, then the code completion results are sorted according to the weight values, and the sorted code completion results are rendered into the preset code completion candidate frame, so that the code completion results can accord with grammar rule constraint, the quality, the executable rate and the accuracy rate of the completion codes can be effectively improved, and the technical problem that the supplement accuracy rate is low because the code completion results obtained in related technologies do not accord with the grammar rule constraint is solved.
The following describes the embodiments of the present invention in detail with reference to the above steps.
In this embodiment of the present invention, before receiving the code completion request, one option further includes: acquiring a code data set, and cleaning the code data set to obtain a target code data set; extracting semantic information abstract in the target code data set; splitting a target code data set based on the semantic information abstract to obtain a training data set and a verification data set; training the training data set by adopting a preset neural network to obtain an initial completion model; verifying the initial completion model based on the verification data set to obtain a verification result, wherein the verification result carries the accuracy; and determining that the initial completion model training is completed under the condition that the accuracy is greater than a preset threshold value, so as to obtain a preset completion model.
In the embodiment of the present invention, a standard code data set may be data-cleaned by a code completion model training module, then a semantic information digest is extracted, then the training data set and a verification data set are split according to the semantic information digest (i.e., the code data set may be first obtained and cleaned to obtain a target code data set, a semantic information digest in the target code data set is extracted, and the target code data set is split based on the semantic information digest to obtain a training data set and a verification data set), then the training data set may be trained by using a preset neural network to obtain an initial completion model (e.g., an Encoder-Decoder network framework may be used and a bllstm neural network may be used to train the initial completion model), a parameter optimization and accuracy check may be performed on the trained initial completion model based on the verification data set, the accuracy of the completion model in the verification data set is ensured to be greater than a preset threshold (for example, the preset threshold can be set to be 90%) (that is, under the condition that the accuracy is greater than the preset threshold, it is determined that the initial completion model training is completed to obtain a preset completion model), and then the completion model meeting the inspection standard is stored and output to the code completion model deduction module.
Step S101, a code completion request is received, wherein the code completion request carries a current coding environment.
In the embodiment of the present invention, a code completion request may be received by the coding scene analysis module, where the code completion request carries a current coding environment, and then the coding scene analysis module may analyze the current coding environment.
And S102, analyzing the current coding environment to obtain comprehensive coding information, and inputting the comprehensive coding information into a preset completion model to complete codes to obtain a completion result.
Optionally, the step of analyzing the current coding environment to obtain the integrated coding information includes: analyzing the current coding environment to obtain current coding environment information, wherein the current coding environment information includes at least one of the following: programming language, coding scenario, programming architecture; extracting context coding information of a current coding environment, wherein the context coding information at least comprises: code information of a current coding line and code information of a current coding file; and obtaining comprehensive coding information based on the current coding environment information and the context coding information.
In this embodiment of the present invention, the coding scenario analysis module may analyze the current coding environment, extract current coding environment information (the current coding environment information may include what programming language (e.g., Java, Python, etc.), what coding scenario (e.g., unit test, etc.), what programming architecture (e.g., SpringBoot (a coding framework), etc.)) the current coding environment may be analyzed, and then extract context coding information of the current coding environment, including: semantic information extraction is carried out on the coded text information of the line currently being edited (namely, the code information of the current coded line is extracted), semantic information extraction is carried out on the whole code file currently being edited (namely, the code information of the current coded file is extracted), and then comprehensive coded information can be obtained according to the current coding environment information and the context coding information.
Optionally, before verifying the completion result based on the preset verification model, the method further includes: carrying out syntax pre-compiling on a preset code to obtain a programming language rule abstract; based on the programming language rule abstract, adopting a preset isolation strategy to establish a preset verification model, wherein the preset verification model comprises the following steps: a grammar rule vector.
In the embodiment of the present invention, the syntax information checking module may perform syntax precompilation according to a standard code (i.e., a preset code) to obtain a programming language rule abstract, and then, based on the programming language rule abstract, a preset checking model may be established by using a preset isolation policy (e.g., a syntax rule vector isolation policy), where the preset checking model includes syntax rule vectors, and then, the preset checking model is issued to the code completion model deduction module.
And S103, verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and the weight value of each code completion result.
Optionally, the step of verifying the completion result based on a preset verification model includes: adding a grammar rule vector in a vector space formed in the code completion process to obtain a check vector space; performing dimension reduction operation on the check vector space by adopting a preset dimension reduction strategy to obtain a dimension reduction vector space; calculating the correlation between the grammar rule vector and the complementing code vector in the dimension-reduced vector space; deleting the complementing code vectors indicated by the correlation smaller than a preset correlation threshold from the dimension-reduced vector space to obtain a target dimension-reduced vector space; the dimension of the target dimension reduction vector space is increased to the dimension before dimension reduction to obtain a target vector space; and obtaining a plurality of verified code completion results based on the target vector space.
In this embodiment of the present invention, the code completion model derivation module may perform verification on the completion result based on a preset verification model, the verification process is performed in the code completion derivation process of the code completion model derivation module, after the completion model is encoded by an Encoder, the encoded syntax rule vector is added into the formed vector space, and a preset dimensionality reduction strategy (such as pca (principal Component analysis) dimensionality reduction) is adopted for the mixed verification vector space to perform dimensionality reduction operation (that is, the syntax rule vector is added into the vector space formed in the code completion process to obtain a verification vector space, the preset dimensionality reduction strategy is adopted to perform dimensionality reduction operation on the verification vector space to obtain a dimensionality reduction vector space), then the completion code vectors classified into the syntax rule vectors are searched, and other code completion vectors far from the syntax rule vectors are eliminated (that is, the completion code vectors in the syntax rule vector space and the dimensionality reduction vector space are calculated) The completion code vector indicated by the relevance smaller than the preset relevance threshold is deleted from the dimensionality reduction vector space to obtain a target dimensionality reduction vector space), then the target dimensionality reduction vector space can be subjected to dimensionality raising to the dimensionality before dimensionality reduction to obtain a target vector space, and a plurality of verified code completion results are obtained based on the target vector space, so that the completion results which do not accord with grammar rules in the vector space can be isolated.
In the embodiment, the completion code vectors which do not accord with the grammar rule are distinguished and isolated by a method of visualizing the vectors in the high-dimensional data in different key fields in a low dimension, so that the verified code completion result accords with the grammar constraint of the programming language.
In the embodiment of the invention, the completion result is verified through the preset verification model, so that a plurality of verified code completion results and the weight value of each code completion result can be obtained.
Optionally, after obtaining the verified multiple code completion results and the weight value of each code completion result, the method further includes: acquiring a preset compiling strategy, wherein the preset compiling strategy at least comprises the following steps: compiling a time type checking strategy and a runtime type checking strategy; compiling and checking a plurality of code completion results based on a preset compiling strategy, wherein the types of compiling and checking comprise: function parameter check, parameter name repeat check, class name repeat check and parameter type check.
In the embodiment of the present invention, after obtaining the verified multiple code completion results and the weight value of each code completion result, a preset compiling strategy may be further adopted to compile and verify the multiple code completion results that have been verified by the preset verification model, so as to perform a second verification on syntax errors that cannot be detected in the preset verification model (for example, a result that has a repeated variable name definition, conforms to program syntax logic, but does not conform to a compiling rule as described above), and output a final verification result to the completion result output module.
In this embodiment, the preset compiling policy may be a policy written based on an XML file, including but not limited to: and compiling time type checking strategies, runtime type checking strategies and other strategies, wherein the compiling rules of the code completion results can be checked through the strategies to detect whether compiling problems such as function lack of parameters, repeated definition of parameter names and class names, non-conformity of parameter types and the like exist (namely the types of compiling and checking comprise function parameter checking, repeated checking of parameter names, repeated checking of class names, checked parameter types and the like).
And step S104, sequencing the multiple code completion results based on the weight value of each code completion result, and rendering the code completion results to a preset code completion candidate frame according to the sequencing results.
In the embodiment of the present invention, the comprehensively verified code completion result and the weight value corresponding to each code completion result may be received by the rendering module, and then the code completion results may be sorted according to the weight values (i.e., a plurality of code completion results are sorted based on the weight value of each code completion result), and according to the sorting result, the sorted code completion results are rendered one by one into a preset code completion candidate frame (e.g., an IDE code completion candidate frame) (i.e., each code completion result is analyzed, and the analyzed code completion result is input into a preset candidate frame template), so as to form a top-to-bottom candidate frame arrangement for a developer to select.
In the embodiment of the invention, by using two verification modes of the preset verification model and the preset compiling strategy, the problems that the coding cost of developers is increased, the coding completion accuracy is low and the programming efficiency is low due to the fact that the code completion result lacks self grammar constraint check of a programming language and needs to be repeatedly modified and carefully discriminated can be effectively solved. Compared with the existing code completion method, the code completion method has higher accuracy and longer completion result length, and can improve the development efficiency of developers.
Example two
Fig. 2 is a schematic diagram of a completion system of an alternative code according to an embodiment of the present invention, and as shown in fig. 2, the completion system may include: a code completion model training module 1, a coding scene analysis module 2, a code completion model deduction module 3, a grammar information checking module 4, a completion result output module 5 and a rendering module 6, wherein,
and the code completion model training module 1 is connected with the code completion model deduction module 3 and used for training a preset completion model based on the code data set and sending the preset completion model to the code completion model deduction module.
The coding scene analysis module 2 is used for receiving the code completion request, analyzing the current coding environment carried in the code completion request to obtain comprehensive coding information, and transmitting the comprehensive coding information to the code completion model deduction module;
the code completion model deduction module 3 is connected with the coding scene analysis module 2 and used for receiving the comprehensive coding information, inputting the comprehensive coding information into a preset completion model for code completion to obtain a completion result, and verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and a weight value of each code completion result;
the grammar information checking module 4 is connected with the code completion model deduction module 3 and the completion result output module 5, and is used for issuing a preset checking model to the code completion model deduction module and issuing a preset compiling strategy to the completion result output module;
the completion result output module 5 is connected with the code completion model deduction module 3 and used for receiving a preset compiling strategy, compiling and verifying a plurality of code completion results based on the preset compiling strategy, and transmitting the compiled and verified code completion results and the weight value of each code completion result to the rendering module;
and the rendering module 6 is connected with the completion result output module 5 and is used for sorting the plurality of code completion results based on the weight value of each code completion result and rendering the code completion results to a preset code completion candidate frame according to the sorting result.
In the embodiment of the present invention, a code completion model training module 1 is connected to a code completion model deduction module 3, a coding scene analysis module 2 is connected to the code completion model deduction module 3, the code completion model deduction module 3 is connected to a completion result output module 5, a syntax information checking module 4 is connected to the code completion model deduction module 3 and the completion result output module 5, the completion result output module 5 is connected to a rendering module 6, and the specific functions of each module are as follows:
the code completion model training module 1 can train a code completion model containing a semantic information abstract according to a standard code data set based on an RNN neural network or a BilSTM network of an Encoder-Decoder network framework, and outputs the code completion model to the code completion model deduction module 3.
The coding scene analysis module 2 can be embedded in the IDE plug-in, and is used for forming the comprehensive coding information according to the current coding environment and the current coding context semantic information and other elements.
The code completion model deduction module 3 can be embedded in the IDE plug-in unit and is used for providing a code completion result, and the module receives the comprehensive coding information provided by the coding scene analysis module 2, inputs the comprehensive coding information into the code completion model trained by the code completion model training module 1 to perform code completion prediction, and then outputs the code completion result.
The integrated coding information in this embodiment includes two parts: (1) current coding environment information: the method comprises the information of the current programming language type (such as Java, python and the like), the software architecture (such as SpringBoot framework programming and the like), the coding scene (such as programming unit testing and the like) and the like; (2) encoding semantic context information: including the code text of the current input line, the complete code text information of the currently open code file.
The grammar information checking module 4 can be embedded in the IDE plug-in, and is used for injecting grammar rules and grammar constraint information in a code grammar pre-training model into the code completion model deduction module 3, providing grammar checking for a code completion result generated by the code completion module, checking technical grammar errors which do not accord with programming language grammar, grammar element deficiency, repeated definition and the like, and isolating and eliminating the code completion result which does not accord with the standard, wherein the grammar information checking module 4 provides two checking modes:
(1) code grammar pre-training model: the model can be precompiled according to the grammar of a standard code, adopts a grammar rule vector isolation form, acts during the training of a completion model of a code completion model deduction module 3, after the model is coded by an Encoder, adds a coded grammar rule information vector into a formed vector space, performs dimension reduction operation (such as PCA operation) on a mixed check vector space, finds code completion vectors which are classified to be close to the grammar rule information vector, eliminates other code completion vectors far away from the grammar rule information vector, and distinguishes and isolates code completion vectors which do not accord with the grammar rule by using a low-dimensional visualization method of vectors in high-dimensional data in different key fields, so that whether a check code completion result accords with the grammar of a programming language is achieved.
(2) A grammar rule module: the module checks the complete result of the code generated as a code segment or a whole sentence through a preset grammar check rule, rechecks the grammar error (for example, the result which is defined by the repeated variable name, accords with the program grammar logic but does not accord with the compiling rule) which can not be checked in the code grammar pre-training model, and outputs the final check result to a complete result output module 5.
The completion result output module 5 may be embedded in the IDE plug-in, may check the completion result of the code model derived in the code completion model derivation module 3 against the grammar rules in the grammar information verification module 4, screen out results that do not conform to the grammar, and then integrate and output a set of verified completion results of the code and the weight value of each completion result.
The rendering module 6 may be embedded in the IDE plug-in, may sort the code completion results from high to low according to the weight values, and renders the sorted and verified code completion results into the IDE code completion prompt candidate box in the form of the plug-in.
Fig. 3 is a schematic diagram of a structure of an optional code completion model training module 1 according to an embodiment of the present invention, and as shown in fig. 3, the code completion model training module 1 includes: a data set encoding unit 11, a completion model training unit 12, a completion model verification unit 13, and a completion model output unit 14, wherein,
and the data set coding unit 11 is used for performing data cleaning, semantic information abstract extraction, training data set splitting and data set verification on the standard code data set.
The completion model training unit 12 is used for training the training data set, and can use an Encoder-Decoder network framework and a BilSTM neural network training code completion model.
The completion model verification unit 13 is configured to perform parameter tuning and accuracy verification on the trained code completion model, and ensure that the accuracy of the code completion model in the verification data set is greater than a preset threshold (e.g., the preset threshold is 90%).
And a complement model output unit 14, configured to store the code complement model meeting the inspection standard and output the code complement model to the code complement model deduction module 3.
Fig. 4 is a schematic diagram of an alternative structure of the coding scene analysis module 2 according to an embodiment of the present invention, and as shown in fig. 4, the coding scene analysis module 2 includes: a coding scene analyzing unit 21, a current line coding information extracting unit 22, and a current coding-located file information extracting unit 23, wherein,
the encoding scenario analysis unit 21 is configured to analyze a current encoding environment, and extract information such as a programming language (e.g., Java, Python) of a current encoding, an encoding scenario (e.g., SpringBoot, unit test, and the like).
And a current line coded information extracting unit 22, configured to perform semantic information extraction on the coded text information of the line currently being edited.
And the file information extracting unit 23 where the current code exists is used for extracting semantic information of the whole code file which is currently edited.
Fig. 5 is a schematic diagram of an alternative structure of the code completion model derivation module 3 according to the embodiment of the present invention, and as shown in fig. 5, the code completion model derivation module 3 includes: a code completion model deployment unit 31, a coding scene information processing unit 32, a syntax rule checking unit 33, and a completion code deduction module 34, wherein,
and the code completion model deployment module 31 is configured to receive the code completion model trained in the code completion model training module 1, and deploy the code completion model in the intelligent code completion system.
And the coding scene information processing module 32 is configured to receive each item of coding information in the coding scene analysis module 2, and perform preprocessing on the coding information so as to deduce the code completion model.
The grammar rule checking unit 33 is configured to embed the pre-trained code grammar rule model into the code completion model, and specifically, when the Encoder generates a semantic vector space, merge the semantic vector space and the grammar rule vector space to form a hybrid check vector space, perform dimension reduction visualization on the high-dimensional hybrid check vector space, perform classification processing on the vector space after dimension reduction, exclude completion code vectors with low correlation with grammar rule vectors, and then perform dimension increase to an original dimension, so as to isolate a code completion result that does not meet the grammar rule in the vector space.
And a complement code deduction unit 34, configured to deduct, by combining the check rule of the syntax rule checking unit 33 and the coding information of the coding scene information processing module 32, a group of code complementation results after syntax checking and a weight value of each code complementation result.
Fig. 6 is a schematic diagram of an alternative structure of the syntax information checking module 4 according to an embodiment of the present invention, and as shown in fig. 6, the syntax information checking module 4 includes: a grammar rule model training unit 41, a grammar rule importing unit 42, and a grammar rule information issuing unit 43, wherein,
and the grammar rule model training unit 41 is used for abstracting the programming language grammar specification to form a check model containing semantic vectors, and sending the check model to the code completion model deduction module 3.
And the grammar rule importing unit 42 is used for importing the programming language compiling rules, including rules of programming language compiling time type checking, runtime type checking and the like.
And the grammar rule information issuing unit 43 is configured to issue the verification model to the code completion model deduction module 3, and issue the programming language compiling rule to the completion result output module 5.
Fig. 7 is a schematic diagram of an alternative structure of the completion result output module 5 according to the embodiment of the present invention, and as shown in fig. 7, the completion result output module 5 includes: a grammar rule receiving unit 51, a completion deduction result grammar rule checking unit 52, and a completion result outputting unit 53, wherein,
the syntax rule receiving unit 51 is configured to receive a programming language compiling rule issued by the syntax information checking module 4, where the programming language compiling rule may be compiled based on an XML file.
And the completion deduction result grammar rule checking unit 52 is used for performing compilation rule checking on the code completion deduction result so as to detect whether compilation problems such as function lack of parameters, repeated definition of parameter names and class names, non-conformity of parameter types and the like exist.
And a completion result output unit 53, configured to output the comprehensively verified code completion result and the weight value thereof.
Fig. 8 is a schematic diagram of an alternative structure of the rendering module 6 according to an embodiment of the present invention, and as shown in fig. 8, the rendering module 6 includes: a completion result receiving unit 61, a completion result sorting unit 62, and a completion result rendering unit 63, wherein,
and a completion result receiving unit 61, configured to receive the comprehensively verified code completion result and the weight value thereof.
And a completion result sorting unit 62 for sorting the code completion results according to the weight values.
And a completion result rendering unit 63, configured to render the sorted code completion result into the IDE code completion candidate frame.
Fig. 9 is a flowchart of an alternative code completion request process according to an embodiment of the present invention, as shown in fig. 9, including the following steps:
step S901: the code completion model is trained through a standard code dataset.
Step S902: and establishing a compiling and checking rule and code grammar rule model.
Step S903: and outputting the trained and verified code completion model to a code completion model deduction module.
Step S904: and sending the code grammar rule model to a code completion deduction module.
Step S905: and issuing a compiling and checking rule to a completion result output module.
Step S906: and initiating a code completion processing request.
Step S907: and outputting the current coding scene comprehensive information.
Step S908: and outputting a code completion result which is deduced by the code completion model and verified by the code grammar rule model.
Step S909: and compiling the code completion result to verify the verification rule, and outputting the re-verified code completion result.
Step S910: and rendering the sorted code completion result to an IDE code completion candidate frame.
According to another aspect of the embodiments of the present invention, there is also provided a computer-readable storage medium including a stored computer program, wherein when the computer program runs, the apparatus on which the computer-readable storage medium is controlled performs the method for complementing the codes.
According to another aspect of embodiments of the present invention, there is also provided an electronic device, including one or more processors and a memory for storing one or more programs, wherein the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method for complementing code as described above.
Fig. 10 is a block diagram of a hardware structure of an electronic device (or a mobile device) for a completion method of a code according to an embodiment of the present invention. As shown in fig. 10, the electronic device may include one or more (shown as 1002a, 1002b, … …, 1002 n) processors 1002 (the processors 1002 may include, but are not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), and memory 1004 for storing data. Besides, the method can also comprise the following steps: a display, an input/output interface (I/O interface), a Universal Serial Bus (USB) port (which may be included as one of the ports of the I/O interface), a network interface, a keyboard, a power supply, and/or a camera. It will be understood by those skilled in the art that the structure shown in fig. 10 is merely illustrative and is not intended to limit the structure of the electronic device. For example, the electronic device may also include more or fewer components than shown in FIG. 10, or have a different configuration than shown in FIG. 10.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
In the above embodiments of the present invention, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed technology can be implemented in other ways. The above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units may be a logical division, and in actual implementation, there may be another division, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, units or modules, and may be in an electrical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in the form of hardware, or may also be implemented in the form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic or optical disk, and other various media capable of storing program codes.
The foregoing is only a preferred embodiment of the present invention, and it should be noted that, for those skilled in the art, various modifications and decorations can be made without departing from the principle of the present invention, and these modifications and decorations should also be regarded as the protection scope of the present invention.

Claims (10)

1. A method for completing a code, comprising:
receiving a code completion request, wherein the code completion request carries a current coding environment;
analyzing the current coding environment to obtain comprehensive coding information, and inputting the comprehensive coding information into a preset completion model to complete codes to obtain a completion result;
verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and a weight value of each code completion result;
and sequencing the plurality of code completion results based on the weight value of each code completion result, and rendering the code completion results to a preset code completion candidate frame according to the sequencing results.
2. The completion method of claim 1, further comprising, prior to receiving the code completion request:
acquiring a code data set, and cleaning the code data set to obtain a target code data set;
extracting semantic information abstracts in the target code data set;
splitting the target code data set based on the semantic information abstract to obtain a training data set and a verification data set;
training the training data set by adopting a preset neural network to obtain an initial completion model;
based on the verification data set, verifying the initial completion model to obtain a verification result, wherein the verification result carries the accuracy;
and determining that the initial completion model is trained to be completed under the condition that the accuracy is greater than a preset threshold value, so as to obtain the preset completion model.
3. The completion method of claim 1, wherein the step of analyzing the current coding environment to obtain the integrated coding information comprises:
analyzing the current coding environment to obtain current coding environment information, wherein the current coding environment information includes at least one of the following: programming language, coding scenario, programming architecture;
extracting context coding information of the current coding environment, wherein the context coding information at least comprises: code information of a current coding line and code information of a current coding file;
and obtaining the comprehensive coding information based on the current coding environment information and the context coding information.
4. The completion method according to claim 1, before verifying the completion result based on a preset verification model, further comprising:
carrying out syntax pre-compiling on a preset code to obtain a programming language rule abstract;
establishing the preset verification model by adopting a preset isolation strategy based on the programming language rule abstract, wherein the preset verification model comprises the following steps: a grammar rule vector.
5. The completion method according to claim 4, wherein the step of verifying the completion result based on a preset verification model comprises:
adding the grammar rule vector into a vector space formed in the process of code completion to obtain a check vector space;
performing dimension reduction operation on the check vector space by adopting a preset dimension reduction strategy to obtain a dimension reduction vector space;
calculating a correlation between the grammar rule vector and a complementary codevector in the reduced-dimension vector space;
deleting the complementing code vectors indicated by the correlation smaller than a preset correlation threshold from the dimension-reduced vector space to obtain a target dimension-reduced vector space;
the dimension of the target dimension reduction vector space is increased to the dimension before dimension reduction, and a target vector space is obtained;
and obtaining a plurality of verified code completion results based on the target vector space.
6. The completion method according to claim 1, further comprising, after obtaining the verified plurality of code completion results and the weight value of each of the code completion results:
obtaining a preset compiling strategy, wherein the preset compiling strategy at least comprises the following steps: compiling a time type checking strategy and a runtime type checking strategy;
based on the preset compiling strategy, compiling and checking the multiple code completion results, wherein the compiling and checking types comprise: function parameter check, parameter name repeat check, class name repeat check and parameter type check.
7. A system for completing a code, comprising:
the coding scene analysis module is used for receiving the code completion request, analyzing the current coding environment carried in the code completion request to obtain comprehensive coding information, and transmitting the comprehensive coding information to the code completion model deduction module;
a code completion model deduction module connected with the coding scene analysis module and used for receiving the comprehensive coding information, inputting the comprehensive coding information into a preset completion model for code completion to obtain a completion result, and verifying the completion result based on a preset verification model to obtain a plurality of verified code completion results and a weight value of each code completion result;
the grammar information checking module is connected with the code completion model deduction module and the completion result output module and is used for issuing the preset checking model to the code completion model deduction module and issuing a preset compiling strategy to the completion result output module;
a completion result output module connected to the code completion model deduction module and configured to receive the preset compilation strategy, perform compilation verification on the plurality of code completion results based on the preset compilation strategy, and transmit the compiled and verified code completion results and a weight value of each code completion result to a rendering module;
and the rendering module is connected with the completion result output module and used for sequencing the plurality of code completion results based on the weight value of each code completion result and rendering the code completion results to a preset code completion candidate frame according to the sequencing result.
8. The replenishment system of claim 7, further comprising:
and the code completion model training module is connected with the code completion model deduction module and used for training the preset completion model based on a code data set and sending the preset completion model to the code completion model deduction module.
9. A computer-readable storage medium, comprising a stored computer program, wherein the computer program, when executed, controls an apparatus in which the computer-readable storage medium is located to perform a method for complementing code according to any one of claims 1 to 6.
10. An electronic device comprising one or more processors and memory storing one or more programs, wherein the one or more programs, when executed by the one or more processors, cause the one or more processors to implement the method of complementing code of any one of claims 1 to 6.
CN202210688854.8A 2022-06-17 2022-06-17 Method and system for complementing code, electronic device and storage medium Pending CN115048105A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210688854.8A CN115048105A (en) 2022-06-17 2022-06-17 Method and system for complementing code, electronic device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210688854.8A CN115048105A (en) 2022-06-17 2022-06-17 Method and system for complementing code, electronic device and storage medium

Publications (1)

Publication Number Publication Date
CN115048105A true CN115048105A (en) 2022-09-13

Family

ID=83161311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210688854.8A Pending CN115048105A (en) 2022-06-17 2022-06-17 Method and system for complementing code, electronic device and storage medium

Country Status (1)

Country Link
CN (1) CN115048105A (en)

Similar Documents

Publication Publication Date Title
CN108388425B (en) Method for automatically completing codes based on LSTM
Wang et al. Blended, precise semantic program embeddings
CN108563433B (en) Device based on LSTM automatic completion code
EP3695310A1 (en) Blackbox matching engine
CN106537333A (en) Systems and methods for a database of software artifacts
CN112069295B (en) Similar question recommendation method and device, electronic equipment and storage medium
CN110888798B (en) Software defect prediction method based on graph convolution neural network
CN112597063A (en) Method, device and storage medium for positioning defect code
CN115238045B (en) Method, system and storage medium for extracting generation type event argument
Tufano et al. Deepmutation: A neural mutation tool
CN113849162A (en) Code generation method combining model drive and deep neural network
CN113158189A (en) Method, device, equipment and medium for generating malicious software analysis report
CN116974554A (en) Code data processing method, apparatus, computer device and storage medium
CN114327609A (en) Code completion method, model and tool
CN117608525A (en) SysML state machine graph formalized demand verification method based on large model
CN116595537A (en) Vulnerability detection method of generated intelligent contract based on multi-mode features
CN117520142A (en) Automatic test assertion statement generation method based on code pre-training model
CN115048105A (en) Method and system for complementing code, electronic device and storage medium
KR102265947B1 (en) Method and apparatus for providing information based on machine learning
Dalal et al. Evaluating sequence-to-sequence learning models for if-then program synthesis
CN115587358A (en) Binary code similarity detection method and device and storage medium
Jnanamurthy et al. Formal specification at model-level of model-driven engineering using modelling techniques
Mohan Automatic repair and type binding of undeclared variables using neural networks
Zhang et al. A trial on model based test case extraction and test data generation
CN114169310B (en) Reading and understanding answer generation method and device

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