IP Library › Granted Patent US 12,613,683
Granted Patent B2
US 12,613,683 · App. 18/069,178 · Granted Apr 28, 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,613,683
App. No.
18/069,178
Granted
Apr 28, 2026
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture to provide machine assisted programming are disclosed. An example apparatus includes processor circuitry to execute computer readable instructions to: execute a machine learning model to generate a first code recommendation for programming code, the first code recommendation being associated with security of the programming code; cause output of the first code recommendation via a user interface; update the machine learning model based on feedback obtained via the user interface; determine a performance of the programming code; generate a second code recommendation, the second code recommendation being associated with the performance of the programming code; and cause output of the second code recommendation via the user interface.

Claims (41)

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

execute a machine learning model to generate a first code recommendation for programming code, the first code recommendation being associated with security of the programming code;

cause output of the first code recommendation via a user interface;

update the machine learning model by applying a weight to the machine learning model based on a user selection of the first code recommendation;

in response to updating the machine learning model, determine a performance of the programming code;

generate a second code recommendation by the machine learning model, the second code recommendation being associated with the performance of the programming code; and

cause output of the second code recommendation via the user interface.

2 . The non-transitory computer readable storage medium of claim 1 , wherein the performance of the programming code corresponds to at least one of an amount of processor resources to execute the programming code, an efficiency of the programming code, or a latency associated with the programming code.

3 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to convert the programming code into one or more feature vectors associated with the programming code, the machine learning model to generate the first code recommendation based on the one or more feature vectors.

4 . 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 user selection of the first code recommendation.

5 . The non-transitory computer readable storage medium of claim 1 , wherein a user provides feedback via the user interface.

6 . The non-transitory computer readable storage medium of claim 5 , wherein the feedback corresponds to user selection of the first code recommendation.

7 . An apparatus comprising:

memory;

computer readable instructions; and

processor circuitry to execute the computer readable instructions to:

execute a machine learning model to generate a first code recommendation for programming code, the first code recommendation being associated with security of the programming code;

cause output of the first code recommendation via a user interface;

update the machine learning model by applying a weight to the machine learning model based on a user selection of the first code recommendation;

in response to updating the machine learning model, determine a performance of the programming code;

generate a second code recommendation by the machine learning model, the second code recommendation being associated with the performance of the programming code; and

cause output of the second code recommendation via the user interface.

8 . The apparatus of claim 7 , wherein the performance of the programming code corresponds to at least one of an amount of processor resources to execute the programming code, an efficiency of the programming code, or a latency associated with the programming code.

9 . The apparatus of claim 7 , wherein the processor circuitry is to convert the programming code into one or more feature vectors associated with the programming code, the machine learning model to generate the first code recommendation based on the one or more feature vectors.

10 . The apparatus of claim 7 , wherein the processor circuitry is to cause code to be inserted into the programming code in response to user selection of the first code recommendation.

11 . The apparatus of claim 7 , wherein a user provides feedback via the user interface.

12 . The apparatus of claim 11 , wherein the feedback corresponds to user selection of the first code recommendation.

13 . A method comprising:

executing a machine learning model to generate a first code recommendation for programming code, the first code recommendation being associated with security of the programming code;

outputting of the first code recommendation via a user interface;

updating the machine learning model by applying a weight to the machine learning model based on a user selection of the first code recommendation;

in response to updating the machine learning model, determining a performance of the programming code;

generating a second code recommendation by the machine learning model, the second code recommendation being associated with the performance of the programming code; and

outputting of the second code recommendation via the user interface.

14 . The method of claim 13 , wherein the performance of the programming code corresponds to at least one of an amount of processor resources to execute the programming code, an efficiency of the programming code, or a latency associated with the programming code.

15 . The method of claim 13 , further including converting the programming code into one or more feature vectors associated with the programming code, the machine learning model to generate the first code recommendation based on the one or more feature vectors.

16 . The method of claim 13 , further including causing code to be inserted into the programming code in response to user selection of the first code recommendation.

17 . The method of claim 13 , wherein a user provides feedback via the user interface.

18 . The method of claim 17 , wherein the feedback corresponds to user selection of the first code recommendation.

19 . The non-transitory computer readable storage medium of claim 1 , wherein the weight is associated with a feature vector of the first code recommendation, the machine learning model trained using the feature vector.

20 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions cause the one or more processors to update, based on user selection of the first code recommendation, a ranking of feature vectors associated with the first code recommendation.

Continuity (3)
Continuation 17967830 · Oct 17, 2022
Continuation 16457365 · Jun 28, 2019
Related Publication 20230128680A1 · Apr 27, 2023
References Cited (36)
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 20240394815A1 · Venkataraman · 2024 [cited by examiner]
US 20240403445A1 · Straub · 2024 [cited by examiner]
US 20250306920A1 · Dziubinski · 2025 [cited by examiner]
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 17/967,830, dated Jul. 18, 2025, 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]
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.edu/˜ullma… [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, 8 pages. [cited by applicant]
United States Patent and Trademark Office, “Corrected Notice of Allowability,” 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, “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]