US 11,934,801 B2
Multi-modal program inference
Kiarash Rahmani, West Lafayette, IN (US); Mohammad Raza, Redmond, WA (US); Sumit Gulwani, Sammamish, WA (US); Vu Minh Le, Redmond, WA (US); Daniel James Morris, Seattle, WA (US); Arjun Radhakrishna, Seattle, WA (US); Gustavo Araujo Soares, Seattle, WA (US); and Ashish Tiwari, Sammamish, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Dec. 7, 2021, as Appl. No. 17/544,502.
Prior Publication US 2023/0176829 A1, Jun. 8, 2023
Int. Cl. G06F 40/30 (2020.01); G06F 8/10 (2018.01); G06F 8/30 (2018.01); G06F 8/33 (2018.01); G06F 8/38 (2018.01); G06F 40/40 (2020.01)
CPC G06F 8/33 (2013.01) [G06F 8/10 (2013.01); G06F 8/30 (2013.01); G06F 8/38 (2013.01); G06F 40/30 (2020.01); G06F 40/40 (2020.01)] 20 Claims
OG exemplary drawing
 
1. A computing system configured for multi-modal program inference, the computing system comprising:
a digital memory;
a processor in operable communication with the digital memory, the processor configured to perform multi-modal program inference steps including: (a) receiving a solution program description, (b) obtaining a set of initial candidate programs from a language model, the initial candidate programs based on at least a portion of the solution program description, (c) inferring program components from at least a portion of the initial candidate programs, (d) iteratively constructing a set of synthesized candidate programs from at least a portion of the inferred program components, the synthesized candidate programs constructed using at least program synthesis, (e) ranking at least two of the synthesized candidate programs or initial candidate programs or both relative to one another, wherein ranking a particular candidate program comprises calculating a string similarity between the particular candidate program and at least a portion of a particular initial candidate program obtained from the language model, (f) designating a top-ranked candidate program as a solution program, the solution program being consistent with the solution program description, and (g) leveraging the solution program, wherein leveraging includes at least one of: executing the solution program, recommending execution of the solution program by configuring a user interface of the computing system, or listing a source code of the solution program by configuring the user interface.