Automated repair of bugs and security vulnerabilities in software

US10866877B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10866877-B2
Application numberUS-201816189353-A
CountryUS
Kind codeB2
Filing dateNov 13, 2018
Priority dateNov 13, 2017
Publication dateDec 15, 2020
Grant dateDec 15, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A software instruction code repair system comprising an instruction code example pool. The example pool comprises a set of good instruction code examples and a set of bad instruction code examples. The software instruction code repair system further comprises a sequence-to-sequence (seq2seq) network that is configured to generate a corrected instruction code example, based on one example of the set of bad instruction code examples. The software instruction code repair system further comprises a discriminator configured to randomly select one of the corrected instruction code example and one instruction code example of the set of good instruction code examples to produce a selected instruction code example. The discriminator is further configured to make a determination that the selected instruction code example is most likely taken either the instruction code example pool or the seq2seq network.

First claim

Opening claim text (preview).

What is claimed is: 1. A sequential data repair system, comprising: an example pool of sequential data examples stored on a data storage device, the example pool of sequential data examples comprising a set of good examples and a set of bad examples; a computer-based sequence-to-sequence (seq2seq) network that comprises a deep learning neural network model, the seq2seq configured to communicate with the data storage device to receive an example of the set of bad examples and to generate a corrected example based on the example of the set of bad examples; a computer-based discriminator configured to communicate with the data storage device and the seq2seq network, and to: (a) randomly select either the corrected example or an example of the set of good examples, to produce a selected example, and (b) make a determination that the selected example was most likely selected from the example pool or the seq2seq network; (c) generate a training error signal based on the determination, the seq2seq network uses the training error signal to train the deep learning neural network model; and a user interface configured to present the corrected example to a user. 2. The sequential data repair system of claim 1 , wherein the discriminator and seq2seq network are configured as a generative adversarial network (GAN). 3. The sequential data repair system of claim 1 , wherein the seq2seq network comprises an encoder configured to produce an intermediate representation of an input data sequence, and a decoder configured to produce and output data sequence based on the intermediate representation of the input data sequence. 4. The sequential data repair system of claim 1 , wherein each good example in the set of good examples represents a sequence of data elements having a quality that equals or exceeds a threshold quality level of sequential data associated with the sequential data repair system. 5. The sequential data repair system of claim 1 , wherein each bad example in the set of bad examples represents a sequence of data elements having a quality that is less than or equal to a minimum threshold quality level of sequential data associated with the sequential data repair system. 6. The sequential data repair system of claim 1 , wherein each bad example in the set of bad examples is labeled to indicate a bad example, and each good example in the set of good examples is labeled to indicate a good example. 7. A software instruction code repair system, comprising: a pool of instruction code examples stored on a data storage device, the pool of instruction code examples comprising a set of good instruction code examples and a set of bad instruction code examples; a computer-based sequence-to-sequence (seq2seq) network that comprises a deep learning neural network model, the seq2seq configured to communicate with the data storage device to receive an example of the set of bad examples and to generate a corrected instruction code example based on one example of the set of bad instruction code examples; a computer-based discriminator configured to communicate with the data storage device and the seq2seq network, and to: (a) randomly select either the corrected instruction code example or an instruction code example of the set of good instruction code examples, to produce a selected instruction code example, and (b) make a determination that the selected instruction code example was most likely selected from either the instruction code example pool or the seq2seq network; (c) generate a training error signal based on the determination, the seq2seq network uses the training error signal to train the deep learning neural network model; and a user interface configured to present the corrected instruction code example to a user. 8. The software instruction code repair system of claim 7 , wherein the discriminator and seq2seq network are configured as a generative adversarial network (GAN). 9. The software instruction code repair system of claim 7 , wherein the seq2seq network comprises an encoder configured to produce an intermediate representation of an input software instruction code, and a decoder configured to produce and output code sequence based on the intermediate representation of the input software instruction code. 10. The software instruction code repair system of claim 7 , wherein each good example in the set of good examples represents a software instruction code example having a quality that equals or exceeds a threshold quality level of software instruction code associated with the software instruction code repair system. 11. The software instruction code repair system of claim 7 , wherein each bad example in the set of bad examples represents a software instruction code example having a quality that is less than or equal to a minimum threshold quality level of software instruction code associated with the software instruction code repair system. 12. The software instruction code repair system of claim 7 , wherein each bad example in the set of bad examples is labeled to indicate a bad software instruction code example, and each good example in the set of good examples is labeled to indicate a good software instruction code example. 13. A method of repairing a sequence of data elements, comprising: storing, on a data storage device, a set of good instruction code examples and a set of bad instruction code examples; generating, using a computer-based sequence-to-sequence (seq2seq) network that comprises a deep learning neural network model, the seq2seq configured to communicate with the data storage device, a corrected instruction code example based on one example of the set of bad instruction code examples; randomly selecting, using a computer-based discriminator, either the corrected instruction code example or an instruction code example of the set of good instruction code examples, to produce a selected instruction code example, making a determination, using the computer-based discriminator, that the selected instruction code example was most likely selected from either the instruction code example pool or the seq2seq network; generating a training error signal based on the determination, the seq2seq network uses the training error signal to train the deep learning neural network model; and presenting, using a user interface, the corrected instruction code example. 14. The method of claim 13 , further comprising configuring the discriminator and seq2seq network as a generative adversarial network (GAN).

Assignees

Inventors

Classifications

  • Combinations of networks · CPC title

  • Auto-encoder networks; Encoder-decoder networks · CPC title

  • Adversarial learning · CPC title

  • Generative networks · CPC title

  • Learning methods · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10866877B2 cover?
A software instruction code repair system comprising an instruction code example pool. The example pool comprises a set of good instruction code examples and a set of bad instruction code examples. The software instruction code repair system further comprises a sequence-to-sequence (seq2seq) network that is configured to generate a corrected instruction code example, based on one example of the…
Who is the assignee on this patent?
Charles Stark Draper Laboratory Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3604. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 15 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).