IP Library › Granted Patent US 12,645,437
Granted Patent B2
US 12,645,437 · App. 17/967,830 · Granted Jun 2, 2026

Methods and apparatus to provide machine assisted programming

Inventors: Marcos Emanuel Carranza (Portland, OR); Cesar Ignacio Martinez Spessot (Cordoba, AR); Mats Agerstam (Portland, OR); Maria Ramirez Loaiza (Beaverton, OR); Alexander Heinecke (San Jose, CA); Justin Gottschlich (Santa Clara, CA)
Assignee: Intel Corporation
G06F8/43G06F18/213G06F18/232G06N20/10G06N20/20
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,645,437
App. No.
17/967,830
Granted
Jun 2, 2026
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture to provide machine assisted programming are disclosed. An example apparatus includes a feature extractor to convert compiled code into a first feature vector; a first machine leaning model to identify a cluster of stored feature vectors corresponding to the first feature vector; and a second machine learning model to recommend a second algorithm corresponding to a second feature vector of the cluster based on a comparison of a parameter of a first algorithm corresponding to the first feature vector and the parameter of the second algorithm.

Claims (41)

1 . A non-transitory computer readable storage medium comprising instructions which, when executed, cause one or more processors to at least:

analyze programming code;

execute a machine learning model to generate one or more code recommendations to modify source code of the programming code based on contextual information associated with the programming code, the contextual information including a task of the programming code and a technology used with the programming code;

generate a list of the one or more recommendations to modify the source code of the programming code;

select a top code recommendation of the one or more code recommendations from the list of the one or more recommendations to modify the source code of the programming code;

cause output of at least one recommendation of the list of the one or more recommendations including the top code recommendation via a user interface; and

update the machine learning model based on a user selection of one of the generated code recommendations.

2 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to cause code to be inserted into the programming code in response to the user selection of the one of the generated code recommendations.

3 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to execute the machine learning model to generate the one or more code recommendations to satisfy the task of the programming code.

4 . The non-transitory computer readable storage medium of claim 1 , wherein the contextual information is user provided.

5 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to generate the list by ranking the one or more code recommendations.

6 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to cause output of the one or more code recommendations via the user interface.

7 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to analyze the programming code by converting the programming code into one or more feature vectors associated with the programming code, the machine learning model to generate the one or more recommendations based on the one or more feature vectors.

8 . An apparatus comprising:

memory;

computer readable instructions; and

processor circuitry to execute the computer readable instructions to:

analyze programming code;

execute a machine learning model to generate one or more code recommendations for the programming code based on contextual information associated with the programming code, the contextual information including a task of the programming code and a technology used with the programming code;

generate a list of the one or more recommendations to modify source code of the programming code;

select a top code recommendation of the one or more code recommendations from the list of the one or more recommendations to modify the source code of the programming code;

cause output of at least one recommendation of the list of the one or more recommendations including the top code recommendation via a user interface; and

update the machine learning model based on a user selection of one of the generated code recommendations.

9 . The apparatus of claim 8 , wherein the processor circuitry is to cause code to be inserted into the programming code in response to the user selection of the one of the generated code recommendations.

10 . The apparatus of claim 8 , wherein the processor circuitry is to execute the machine learning model to generate the one or more code recommendations to satisfy the task of the programming code.

11 . The apparatus of claim 8 , wherein the contextual information is user provided.

12 . The apparatus of claim 8 , wherein the processor circuitry is to generate the list by ranking the one or more code recommendations.

13 . The apparatus of claim 8 , wherein the processor circuitry is to cause output of the one or more code recommendations via the user interface.

14 . The apparatus of claim 8 , wherein the processor circuitry is to analyze the programming code by converting the programming code into one or more feature vectors associated with the programming code, the machine learning model to generate the one or more recommendations based on the one or more feature vectors.

15 . A method comprising:

analyzing, by executing instructions with one or more processors, programming code;

executing, by executing instruction with the one or more processors, a machine learning model to generate one or more code recommendations for the programming code based on contextual information associated with the programming code, the contextual information including a task of the programming code and a technology used with the programming code;

generating, by executing instruction with the one or more processors, a list of the one or more recommendations to modify source code of the programming code;

selecting, by executing instruction with the one or more processors, a top code recommendation of the one or more code recommendations from the list of the one or more recommendations to modify the source code of the programming code;

causing, by executing instruction with the one or more processors, output of at least one recommendation of the list of the one or more recommendations including the top code recommendation via a user interface; and

updating, by executing instruction with the one or more processors, the machine learning model based on a user selection of one of the generated code recommendations.

16 . The method of claim 15 , further including causing code to be inserted into the programming code in response to the user selection of the one of the generated code recommendations.

17 . The method of claim 15 , further including executing the machine learning model to generate the one or more code recommendations to satisfy the task of the programming code.

18 . The method of claim 15 , wherein the contextual information is user provided.

19 . The method of claim 15 , further including generating the list by ranking the one or more code recommendations.

20 . The method of claim 15 , further including causing output of the one or more code recommendations via the user interface.

Continuity (2)
Continuation 16457365 · Jun 28, 2019
Related Publication 20230039377A1 · Feb 9, 2023
References Cited (39)
US 11176491B2 · Bettencourt-Silva · 2021 [cited by examiner]
US 11243747B2 · Jacobs · 2022 [cited by examiner]
US 11475369B2 · Carranza · 2022 [cited by examiner]
US 11501191B2 · Shaikh · 2022 [cited by examiner]
US 20110219360A1 · Srinivasa et al. · 2011 [cited by applicant]
US 20180188897A1 · Gulwani et al. · 2018 [cited by applicant]
US 20180357145A1 · Sarangapani · 2018 [cited by examiner]
US 20190108001A1 · Hauser · 2019 [cited by examiner]
US 20200097845A1 · Shaikh · 2020 [cited by examiner]
US 20200111043A1 · Cheeks · 2020 [cited by examiner]
US 20220292543A1 · Henderson · 2022 [cited by examiner]
US 20230128680A1 · Carranza et al. · 2023 [cited by applicant]
US 20240394815A1 · Venkataraman · 2024 [cited by examiner]
US 20240403445A1 · Straub · 2024 [cited by examiner]
US 20250306920A1 · Dziubinski · 2025 [cited by examiner]
Kite, “Code Faster. Stay in Flow,” Kite—Free AI Coding Assistant and Code Auto-Complete Plugin, retrieved on May 25, 2022, 9 pages. [cited by applicant]
Eclipse, “Code Recommenders The Intelligent Development Environment,” published on Jun. 26, 2019, retrieved on May 25, 2022, 3 pages. [retrieved from: http://web.archive.org/web/20190626212855/http://www.eclipse.org/rec… [cited by applicant]
InfoLab Standford, “The Running Time of Programs,” CS109: Introduction to Computer Science, Computer Science 201, SEC. 3.3 Measuring Running Time, Jul. 1994, 72 pages. [retrieved from: http://infolab.stanford.eduullman/… [cited by applicant]
Big-O Cheat Sheet, “Know Thy Complexities!,” retrieved on May 25, 2022, 11 pages. [retrieved from: http://www.eclipse.org/recommenders/]. [cited by applicant]
Venkataraman et al., “Evaluation of Inter-Process Communication Mechanisms,” published 2015, 6 pages. [cited by applicant]
Hammar, “Analysis and Design of High Performance Inter-core Process Communication for Linux,” Uppsala Universitet, Nov. 2014, 56 pages. [cited by applicant]
Microsoft Build, “How Windows uses the Trusted Platform Module,” May 3, 2022, 16 pages. [cited by applicant]
Majumdar et al., “Adaptive Sorting Using Machine Learning,” International Journal of Computer Science and Information Technologies, vol. 7 (2), 2016, 4 pages. [cited by applicant]
Trusted Computing Group, “Trusted Platform Module (TPM), 2.0: A Brief Introduction,” retrieved on May 25, 2022, 3 pages. [retrieved from: https://trustedcomputinggroup.org/wp-content/uploads/TPM-2.0-A-Brief-Introduction… [cited by applicant]
Gottschlich et al., “The Three Pillars of Machine Programming,” Intel Labs, MIT, May 8, 2018, 11 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/457,365, dated Jun. 2, 2022, 2 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/457,365, dated Jun. 10, 2022, 2 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/457,365, dated Sep. 9, 2022, 8 pages. [cited by applicant]
Lops, Pasquale et al., “Content-based Recommender Systems: State of the Art and Trends”, Recommender Systems Handbook, Chapter 3, pp. 73-105, 2011,33 pages. [cited by applicant]
Irani, Jasmine et al., “Clustering Techniques and the Similarity Measures used in Clustering: A Survey”, International Journal of Computer Applications, vol. 134, No. 7, Jan. 2016, 6 pages. [cited by applicant]
Comaniciu, Dorin et al., “Mean Shift: A Robust Approach Toward Feature Space Analysis”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 24, No. 5, May 2002, 17 pages. [cited by applicant]
Adomavicius, Gediminas et al., “Improving Aggregate Recommendation Diversity Using Ranking-Based Techniques”, IEEE Transactions on Knowledge and Data Engineering, vol. 24, No. 5, May 2012, 16 pages. [cited by applicant]
Wang, Song et al., “Automatically Learning Semantic Features for Defect Prediction”, ACM 38th IEEE International Conference on Software Engineering, May 14-16, 2016, 12 pages. [cited by applicant]
Arthur, David et al., “k-means++: The Advantages of Careful Seeding”, Proceedings of the Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms, Jan. 7-9, 2017, 10 pages. [cited by applicant]
Fernández, Alberto et al., “Solving Non-Uniqueness in Agglomerative Hierarchical Clustering Using Multidendrograms”, Journal of Classification, published online on Jun. 26, 2008, 23 pages. [cited by applicant]
Misra, Janardan et al., “Software Clustering: Unifying Syntactic and Semantic Features”, 2012 19th Working Conference on Reverse Engineering, Oct. 15-18, 2012, 13 pages. [cited by applicant]
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 18/069,178, dated Sep. 5, 2025, 8 pages. [cited by applicant]
United States Patent and Trademark Office, “Second Corrected Notice of Allowability,” issued in connection with U.S. Appl. No. 16/457,365, dated Sep. 14, 2022, 2 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. 18/069,178, dated Jan. 23, 2026, 7 pages. [cited by applicant]