Internet-based machine programming

US11269601B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11269601-B2
Application numberUS-201916455125-A
CountryUS
Kind codeB2
Filing dateJun 27, 2019
Priority dateJun 27, 2019
Publication dateMar 8, 2022
Grant dateMar 8, 2022

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.

Apparatus, devices, systems, methods, and articles of manufacture for intent-based machine programming are disclosed. An example system categorize source code blocks includes a code repository accessor to access a code repository and select a source code block. The example system also includes a signature generator to generate a signature for the source code block, a collateral miner to extract collateral associated with the source code block, and a tokenizer to transform the source code block into tokens. In addition, the example system includes a function assessor to determine a function of the source code block based on the collateral and the tokens and an input/output determiner to determine an input and an output of the source code block based on the collateral and the signature. The example system further includes a tagger to categorize the source code block with the function, input, and output.

First claim

Opening claim text (preview).

What is claimed is: 1. A system to automatically generate source code, the system comprising: an intent receiver to receive intent of a programmer developing source code; an intent analyzer to determine a target function, input, and output of the intent; a code searcher to: search a repository of source code blocks, the source codes blocks categorized with respective functions, inputs, and outputs; and identify a first candidate source code block to match the target function, input, and output based on the categorized function, input, and output of the first candidate source code block; a code evaluator to: determine if the categorized function, input, and output of the first candidate source code block matches the target function, input, and output of the intent; when the code evaluator determines that at least one of the categorized function, input, or output of the first candidate source code block does not match at least one of the target function, input, or output of the intent, the code searcher is to identify a second candidate source code block to partially match the target function, input, and output based on the categorized function, input, and output of the candidate source code block; determine if one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent; and when one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent: the code evaluator is to identify the element of intent not satisfied by the second candidate source code block; the code searcher is to find a supplement source code block to satisfy the missing element; and a code inserter to: insert the first candidate source code block when the categorized function, input, and output of the first candidate source code block matches the target function, input, and output of the intent; and insert the second candidate source code block and the supplement source code block when one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent. 2. The system of claim 1 , wherein the programmer is a machine. 3. A system to automatically generate source code, the system comprising: means for receiving intent of a programmer developing source code; means for analyzing the intent to determine a target function, input, and output of the intent; means for identifying a first candidate source code block from a repository of source code blocks, the first candidate source code block to match the target function, input, and output based on the categorized function, input, and output of the first candidate source code block; means for evaluating source code to: determine if the categorized function, input, and output of the first candidate source code block matches the target function, input, and output of the intent; when the means for evaluating determines that at least one of the categorized function, input, or output of the first candidate source code block does not match at least one of the target function, input, or output of the intent, the means for identifying is to identify a second candidate source code block to partially match the target function, input, and output based on the categorized function, input, and output of the candidate source code block; determine if one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent; and when one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent: the means for evaluating is to identify the element of intent not satisfied by the second candidate source code block; and the means for identifying is to find a supplement source code block to satisfy the missing element; and means for inserting to: insert the first candidate source code block when the categorized function, input, and output of the candidate source code block matches the target function, input, and output of the intent; and insert the second candidate source code block and the supplement source code block when one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent. 4. The system of claim 3 , wherein the programmer is a machine. 5. A non-transitory computer readable storage medium comprising computer readable instructions that, when executed, cause one or more processors to, at least: determine a target function, input, and output of an intent received from a programmer developing source code; search a repository of source code blocks, the source codes blocks categorized with respective functions, inputs, and outputs; identify a first candidate source code block to match the target function, input, and output based on the categorized function, input, and output of the first candidate source code block; determine if the categorized function, input, and output of the first candidate source code block matches the target function, input, and output of the intent; when at least one of the categorized function, input, or output of the first candidate source code block does not match at least one of the target function, input, or output of the intent, the instructions cause the one or more processors to identify a second candidate source code block to partially match the target function, input, and output based on the categorized function, input, and output of the candidate source code block; determine if one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent; and when one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent, the instructions cause the one or more processors to: identify the element of intent not satisfied by the second candidate source code block; find a supplement source code block to satisfy the missing element; insert the first candidate source code block when the categorized function, input, and output of the first candidate source code block matches the target function, input, and output of the intent; and insert the second candidate source code block and the supplement source code block when one or two of the categorized function, input, and output of the second candidate source code block matches at least one or two of the target function, input, and output of the intent. 6. The computer readable storage medium of claim 5 , wherein the programmer is a machine. 7. The computer readable storage medium of claim 5 , wherein the instructions cause the one or more processors to: access the repository; select a source code block; generate a signature for the source code block; extract collateral associated with the source code block, the collateral including a first type of collateral and a second type of collateral different from the first type of collateral; transform the source code block into tokens; determine a function of the source code block based on the first type of collateral and the tokens; determine an input and an output of the source code block based on the second type of collateral and the signature; and categorize the source code

Assignees

Inventors

Classifications

  • Recurrent networks, e.g. Hopfield networks · CPC title

  • Combinations of networks · CPC title

  • Convolutional networks [CNN, ConvNet] · CPC title

  • Program documentation · CPC title

  • G06F8/427Primary

    Parsing · 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 US11269601B2 cover?
Apparatus, devices, systems, methods, and articles of manufacture for intent-based machine programming are disclosed. An example system categorize source code blocks includes a code repository accessor to access a code repository and select a source code block. The example system also includes a signature generator to generate a signature for the source code block, a collateral miner to extract…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/427. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 08 2022 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).