IP Library › Granted Patent US 12,299,423
Granted Patent B2
US 12,299,423 · App. 17/688,524 · Granted May 13, 2025

Intent-based machine programming

Inventors: Brian Cremeans (Hillsboro, OR); Marcos Emanuel Carranza (Portland, OR); Krishna Surya (Portland, OR); Mats Agerstam (Portland, OR); Justin Gottschlich (Santa Clara, CA)
Assignee: Intel Corporation
G06F8/427G06F8/22G06F8/36G06F8/73G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,299,423
App. No.
17/688,524
Granted
May 13, 2025
Kind
B2
Abstract

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.

Claims (36)

1. A non-transitory computer readable storage medium comprising computer readable instructions to cause at least one processor circuit to, at least:

access text representative of a desired functionality of a function, a desired input to the function, and a desired output of the function;

generate a candidate response based on execution of a machine learning model using the text as a textual input to the machine learning model, the candidate response including executable program code;

identify a supplemental source code in response to at least one of the candidate response having an input that does not match the desired input, or the candidate response having an output that does not match the desired output, the supplemental source code to complete the candidate response with respect to the at least one of the desired input or the desired output; and

insert the candidate response and the supplemental source code into source code.

2. The non-transitory computer readable storage medium of claim 1 , wherein the candidate response is to cause inclusion of a reference to a library in the source code.

3. The non-transitory computer readable storage medium of claim 1 , wherein the computer readable instructions are to cause one or more of the at least one processor circuit to generate the candidate response based on an expected input to the executable program code.

4. The non-transitory computer readable storage medium of claim 1 , wherein the computer readable instructions are to cause one or more of the at least one processor circuit to generate the candidate response based on an expected output of the executable program code.

5. The non-transitory computer readable storage medium of claim 1 , wherein the text is in a natural language.

6. A method for development of source code, the method comprising:

receiving text representative of a desired functionality of a function, a desired input to the function, and a desired output of the function;

generating, by executing an instruction with at least one processor, a candidate response based on execution of a machine learning model using the text as a textual input to the machine learning model, the candidate response including executable program code;

identifying a supplemental source code in response to at least one of the candidate response having an input that does not match the desired input, or the candidate response having an output that does not match the desired output, the supplemental source code to complete the candidate response with respect to the at least one of the desired input or the desired output; and

inserting, by executing an instruction with at least one processor, the candidate response and the supplemental source code into the source code.

7. The method of claim 6 , wherein the candidate response is to cause inclusion of a reference to a library in the source code.

8. The method of claim 6 , further including generating the candidate response based on an expected input to the executable program code.

9. The method of claim 6 , further including generating the candidate response based on an expected output of the executable program code.

10. The method of claim 6 , wherein the text is not in a programming language.

11. The method of claim 6 , wherein the text is in a natural language.

12. An apparatus comprising:

interface circuitry;

machine-readable instructions; and

at least one processor circuit to be programmed by the machine-readable instructions to:

receive text to identify an inferred functionality of a function, an inferred input to the function, and an inferred output of the function;

generate a candidate response based on execution of a machine learning model using the text as a textual input to the machine learning model, the candidate response including executable program code;

identify a supplemental source code in response to at least one of the candidate response having an input that does not match the inferred input, or the candidate response having an output that does not match the inferred output, the supplemental source code to complete the candidate response with respect to the at least one of the inferred input or the inferred output; and

insert the candidate response and the supplemental source code into source code.

13. The apparatus of claim 12 , wherein the candidate response is to cause inclusion of a reference to a library in the source code.

14. The apparatus of claim 12 , wherein one or more of the at least one processor circuit is to generate the candidate response based on an expected input to the executable program code.

15. The apparatus of claim 12 , wherein one or more of the at least one processor circuit is to generate the candidate response based on an expected output of the executable program code.

16. The apparatus of claim 12 , wherein the text is not in a computer readable language.

17. The apparatus of claim 12 , wherein the text is not in a programming language.

18. The apparatus of claim 12 , wherein the text is in a natural language.

19. The non-transitory computer readable storage medium of claim 1 , wherein the candidate response further includes a unit test.

20. The non-transitory computer readable storage medium of claim 1 , wherein the candidate response is to fulfill an intent of the text.

21. The non-transitory computer readable storage medium of claim 1 , wherein the computer readable instructions are to cause one or more of the at least one processor circuit to insert the candidate response and the supplemental source code into the source code.

Continuity (2)
Continuation 16455125 · Jun 27, 2019
Related Publication 20220197611A1 · Jun 23, 2022
References Cited (52)
US 3243132A · Taylor et al. · 1966 [cited by applicant]
US 6624052B2 · Ramkumar et al. · 2003 [cited by applicant]
US 6654953B1 · Beaumont · 2003 [cited by examiner]
US 8464232B2 · Urakhchin · 2013 [cited by examiner]
US 9043759B1 · Lininger · 2015 [cited by examiner]
US 10048945B1 · Makkar · 2018 [cited by examiner]
US 11269601B2 · Cremeans et al. · 2022 [cited by applicant]
US 20080034357A1 · Gschwind · 2008 [cited by examiner]
US 20120222021A1 · Zhao · 2012 [cited by examiner]
US 20140173563A1 · Dias · 2014 [cited by examiner]
US 20140365994A1 · Vann · 2014 [cited by examiner]
US 20160292066A1 · Stevens · 2016 [cited by examiner]
US 20170060540A1 · Allen et al. · 2017 [cited by applicant]
US 20170060555A1 · Allen et al. · 2017 [cited by applicant]
US 20170371629A1 · Chacko · 2017 [cited by examiner]
US 20180373507A1 · Mizrahi et al. · 2018 [cited by applicant]
US 20190114157A1 · Makkar · 2019 [cited by examiner]
US 20190317743A1 · Cremeans et al. · 2019 [cited by applicant]
US 20200167134A1 · Dey · 2020 [cited by examiner]
Li et al., “Automatically Documenting Unit Test Cases,” IEEE, 2016, 12pg. (Year: 2016). [cited by examiner]
Allamanis et al., “A Survey of Machine Learning for Big Code and Naturalness,” ACM, 2018. (Year: 2018). [cited by examiner]
Tufano et al., “On Learning Meaningful Code Changes via Neural Machine Translation,” IEEEm Jan. 2019. (Year: 2019). [cited by examiner]
Campbell et al., “NLP2Code: Code Snippet Content Assist via Natural Language Tasks,” IEEE, 2017, 5pg. (Year: 2017). [cited by examiner]
Desai et al., “Program Synthesis using Natural Language,” ACM, 2016, 12pg. (Year: 2016). [cited by examiner]
Price et al., “NaturalJava: A Natural Language Interface for Programming in Java,” ACM, 2000, 5pg. (Year: 2000). [cited by examiner]
Yin et al., “A Syntactic Neural Model for General-Purpose Code Generation,” arXiv, 2017, 14pg. (Year: 2017). [cited by examiner]
Fertalj, Kresimir et al, “Source Code Generator Based on a Proprietary Specification Language, Proceedings of the 35th Hawaii International Conference on System Sciences,” 2002, 2 pages. (Abstract only provided). [cited by applicant]
Das, Subhasis and Shah, Chinmayee, “Contextual Code Completion Using Machine Learning,” 2015, pp. 1-6, Stanford University. [cited by applicant]
Novak, Gordon, “Computer aided software design via inference and constraint propagation,” 2009, 2 pages, Integrated Computer-Aided Engineering, University of Texas. (Abstract only provided). [cited by applicant]
Eclipse, https://www.eclipse.org/recommenders/manual/, retrieved Jun. 24, 2019, 13 pages. [cited by applicant]
Pycharm, https://www.jetbrains.com/help/pycharm/auto-completing-code.html, “Code Completion,” retrieved Jun. 24, 2019, 11 pages. [cited by applicant]
Kite, https://kite.com/, “Code Faster in Python,” retrieved Jun. 24, 2019, 2 pages. [cited by applicant]
Balog, Matej, Gaunt, Alexander, L et al, “DeepCoder: Learning to write programs,” 2017, pp. 1-20, ICLR. [cited by applicant]
Aylien, http://blog.aylien.com/source-code-classification-using-deep-learn- ing/, “Source Code Classification,” 2016, retrieved Jun. 24, 2019, 15 pages. [cited by applicant]
Allamanis and Sutton, “Mining Source Code Repositories at Massive Scale using Language Modeling,” http://homepages.inf.ed.ac.uk/csutton/publications/msr2013.pdf, retrieved Jun. 24, 2019, 10 pages. [cited by applicant]
Bhoopchand, Tocktaschel, Barr, and Riedel, “Learning Python Code Suggestion with a Sparse Pointer Network,” 2017. pp. 1-11, ICLR. [cited by applicant]
Bottou, Leon, “From Machine Learning to Machine Reasoning,” 2011, 15 pages. [cited by applicant]
Allamanis and Sutton, “Mining Idioms from Source Code,” retrieved Jun. 24, 2019, 12 pages. [cited by applicant]
European Patent Office, “Extended Search Report,” issued in connection with EP Patent application No. 20166259.0, dated Nov. 24, 2020, 12 pages. [cited by applicant]
Ben Gelman et al, “A Language-Agnostic Model for Semantic Source Code Labeling”, arxiv.org, Cornell University Library, 201 Olin Library Cornell University Ithaca, NY 14853, (Jun. 3, 2019), doi: 10.1145/3243127.3243132,… [cited by applicant]
Howard Matthew J et al, “Automatically mining software-based, semantically-similar words from comment-code mappings”, 2013 10th Working Conference on Mining Software Repositories (MSR), IEEE, doi:10.1109/MSR.2013.662405… [cited by applicant]
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 16/455,125, dated Jan. 7, 2021, 10 pages. [cited by applicant]
United States Patent and Trademark Office, “Final Office Action,” issued in connection with U.S. Appl. No. 16/455,125, dated Jun. 24, 2021, 8 pages. [cited by applicant]
United States Patent and Trademark Office, “Notice of Allowance and Fee(s) Due,” issued in connection with U.S. Appl. No. 16/455,125, dated Oct. 29, 2021, 7 pages. [cited by applicant]
United States Patent and Trademark Office, “Corrected Notice of Allowability,” issued in connection with U.S. Appl. No. 16/455,125, dated Nov. 8, 2021, 6 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 20166259.0, dated Aug. 3, 2022, 8 pages. [cited by applicant]
European Patent Office, “Extended European Search Report,” issued in connection with European Patent Application No. 22194614.8, dated Dec. 21, 2022, 11 pages. [cited by applicant]
European Patent Office, “Communication under Rule 71(3) EPC Intention to Grant,” issued in connection with European Patent Application No. 20166259.0, dated Jan. 5, 2023, 9 pages. [cited by applicant]
Chatterjee et al., “Sniff: A Search Engine for Java Using Free-Form Queries,” SAT 2015 18th International Conference, Mar. 22, 2009, 16 pages. [cited by applicant]
Gu Xiaodong et al., “Deep code search,” 2018 ACM/IEEE 40th International Conference on Software Engineering, May 27, 2018, 12 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 22 194 614.8-1203, dated Mar. 28, 2024, 7 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 22 194 614.8-1203, mailed on Feb. 7, 2025, 7 pages. [cited by applicant]
Cited By (1)
US 12,596,858