US 11,861,333 B2
Augmentation of code completion and code synthesis with semantic checking
Maxim Tabachnyk, Munich (DE); Yurun Shen, Mountain View, CA (US); Stoyan Stefanov Nikolov, Planegg (DE); Stanislav Pyatykh, Unterhaching (DE); Ksenia Korovina, Mountain View, CA (US); Evgeny Gryaznov, Mountain View, CA (US); and Erik Grabljevec, Mountain View, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Mar. 29, 2022, as Appl. No. 17/657,113.
Prior Publication US 2023/0315400 A1, Oct. 5, 2023
Int. Cl. G06F 8/33 (2018.01)
CPC G06F 8/33 (2013.01) 20 Claims
OG exemplary drawing
 
1. A computer-implemented method when executed by data processing hardware causes the data processing hardware to perform operations comprising:
obtaining, from a user interface executing on a user device, a user input representing source code generated within a development environment, the source code created using a particular programming language and a programming code base;
determining, using a machine learning model, an autofill suggestion based on the user input, the autofill suggestion continuing the source code represented by the user input;
determining, using a rule-based semantic checker configured for the particular programming language, whether the autofill suggestion is semantically correct based on the development environment and the programming code base;
when the autofill suggestion is semantically correct, transmitting the autofill suggestion for display on the user interface of the user device;
determining, using the machine learning model, a plurality of autofill suggestions based on the user input; and
for each respective autofill suggestion of the plurality of autofill suggestions:
determining, using the rule-based semantic checker, whether the respective autofill suggestion is semantically correct based on the development environment and the programming code base; and
when the respective autofill suggestion is semantically correct, transmitting the respective autofill suggestion for display on the user interface of the user device.