Patents by Inventor Sumit Gulwani

Sumit Gulwani has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 12282411
    Abstract: Some embodiments generate prompts and submit them in queries to a language model trained on code to perform automated program repair. Some embodiments fix syntactic mistakes and semantic mistakes by combining multimodal prompts, iterative querying, test-case-based selection of few-shots, and program chunking. In some cases, edit distance is minimized between an initial flawed program and the automatically created improved version of that program. The initial flawed program is obtained from a programming student, or from a source code generator.
    Type: Grant
    Filed: January 26, 2023
    Date of Patent: April 22, 2025
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jialu Zhang, José Pablo Cambronero Sánchez, Gustavo Araujo Soares, Vu Minh Le, Sumit Gulwani, Gust Ben Anneloes Verbruggen
  • Patent number: 12265789
    Abstract: Techniques are described herein that are capable of creating a language-agnostic computer program repair engine generator. A context-free grammar is annotated to identify token(s) that are likely to be included in or excluded from a computer program in a manner that violates the context-free grammar. A language-agnostic computer program repair engine generator is created that is configured to generate a parser. The repair engine generator is configured to create a repair engine that: converts the candidate string into repaired strings that neither violate the context-free grammar nor violate a criterion for a valid computer program; calculates differences between the candidate string and the respective repaired strings; and replaces the candidate string with a designated repaired string based at least in part on the difference between the designated repaired string and the candidate string being less than or equal to a difference threshold.
    Type: Grant
    Filed: March 11, 2022
    Date of Patent: April 1, 2025
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Rohan Jayesh Bavishi, José Pablo Cambronero Sánchez, Anna Fariha, Sumit Gulwani, Vu Minh Le, Ivan Radicek, Daniel Galen Simmons, Ashish Tiwari
  • Patent number: 12222911
    Abstract: Some embodiments perform fully unsupervised string error detection and repair, for strings containing both syntactic errors and semantic errors. In some embodiments, string error mitigation includes learning a regular-expression-based pattern that characterizes at least a predefined fraction of a set of string data values, identifying and masking a semantic substring, deriving edits to repair a string which contains the semantic substring, and replacing a mask value with a replacement substring that conforms to the pattern. Some embodiments utilize a language model. Some embodiments include or utilize a pattern learner, one or more learned significant patterns, and a repair engine. Some embodiments exploit program execution information to generate patterns when significant patterns are not initially found.
    Type: Grant
    Filed: September 28, 2023
    Date of Patent: February 11, 2025
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mukul Singh, José Pablo Cambronero Sánchez, Sumit Gulwani, Vu Minh Le, Carina Suzana Negreanu, Gust Ben Anneloes Verbruggen
  • Publication number: 20240256423
    Abstract: Some embodiments generate prompts and submit them in queries to a language model trained on code to perform automated program repair. Some embodiments fix syntactic mistakes and semantic mistakes by combining multimodal prompts, iterative querying, test-case-based selection of few-shots, and program chunking. In some cases, edit distance is minimized between an initial flawed program and the automatically created improved version of that program. The initial flawed program is obtained from a programming student, or from a source code generator.
    Type: Application
    Filed: January 26, 2023
    Publication date: August 1, 2024
    Inventors: Jialu ZHANG, José Pablo CAMBRONERO SÁNCHEZ, Gustavo ARAUJO SOARES, Vu Minh LE, Sumit GULWANI, Gust Ben Anneloes VERBRUGGEN
  • Publication number: 20240184979
    Abstract: Some embodiments automatically generate data processing rules based on positive examples of processed data, e.g., formatting rules based on formatted data, filtering rules based on filtered data, or validating rules based on valid data. Some embodiments also use negative examples, e.g., unformatted data. A machine learning rule generation architecture includes a predicate generator, a cell cluster creator, a rule enumerator, and in some versions a rule ranker. Formatting rules written by a user are replaced by simpler autogenerated rules. Spreadsheet formatting rule functionality is enhanced, and surfaced in a user interface.
    Type: Application
    Filed: December 6, 2022
    Publication date: June 6, 2024
    Inventors: Mukul SINGH, José Pablo CAMBRONERO SÁNCHEZ, Sumit GULWANI, Vu Minh LE, Carina Suzana NEGREANU, Mohammad RAZA, Daniel Galen SIMMONS, Gust Ben Anneloes VERBRUGGEN
  • Publication number: 20240143562
    Abstract: Various technologies described herein pertain to automated data splitting using predictive program synthesis. Input-only examples for splitting an input column of an input data set can be received. The input-only examples can include example entries from the input column of the input data set to be split into multiple output columns without specification of how the example entries are to be split into multiple output columns. Further, a program for splitting the input column of the input data set into the multiple output columns can be synthesized based on the input-only examples. The program can be synthesized, given the input-only examples, in a domain-specific language (DSL) for splitting an entry into a tuple of fields utilizing a predictive program synthesis algorithm. Moreover, the program can be executed on the input data set to split the input column of the input data set into the multiple output columns.
    Type: Application
    Filed: December 20, 2023
    Publication date: May 2, 2024
    Inventors: Mohammad Raza, Sumit Gulwani
  • Patent number: 11941372
    Abstract: Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.
    Type: Grant
    Filed: April 1, 2021
    Date of Patent: March 26, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Titus Barik, Gustavo Araujo Soares, Piyush Arora, Peter Groenewegen, Sumit Gulwani, Ameya Sanjay Ketkar, Vu Minh Le, Wode Ni, David Ellis Pugh, Arjun Radhakrishna, Ivan Radicek, Ashish Tiwari, Mark Alistair Wilson-Thomas
  • Patent number: 11934801
    Abstract: Embodiments use a multi-modal approach to generate software programs that match a solution program description. The solution program description may include natural language, input-output examples, partial source code, desired operators, or other hints. Some embodiments use optimized prompts to a pre-trained language model to obtain initial candidate programs. Maximal program components are extracted and then recombined variously using component-based synthesis. Beam search reduces a solution program search space by discarding some candidates from a given synthesis iteration. Relevance metrics, string similarity metrics, operator frequency distributions, token rareness scores, and other optimizations may be employed. By virtue of optimizations and the multi-modal approach, a solution program may be obtained after fewer iterations than by use of a language model alone.
    Type: Grant
    Filed: December 7, 2021
    Date of Patent: March 19, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Kiarash Rahmani, Mohammad Raza, Sumit Gulwani, Vu Minh Le, Daniel James Morris, Arjun Radhakrishna, Gustavo Araujo Soares, Ashish Tiwari
  • Patent number: 11892987
    Abstract: Various technologies described herein pertain to automated data splitting using predictive program synthesis. Input-only examples for splitting an input column of an input data set can be received. The input-only examples can include example entries from the input column of the input data set to be split into multiple output columns without specification of how the example entries are to be split into multiple output columns. Further, a program for splitting the input column of the input data set into the multiple output columns can be synthesized based on the input-only examples. The program can be synthesized, given the input-only examples, in a domain-specific language (DSL) for splitting an entry into a tuple of fields utilizing a predictive program synthesis algorithm. Moreover, the program can be executed on the input data set to split the input column of the input data set into the multiple output columns.
    Type: Grant
    Filed: October 20, 2016
    Date of Patent: February 6, 2024
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Mohammad Raza, Sumit Gulwani
  • Patent number: 11875136
    Abstract: Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.
    Type: Grant
    Filed: April 1, 2021
    Date of Patent: January 16, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Gustavo Araujo Soares, Piyush Arora, Titus Barik, Peter Groenewegen, Sumit Gulwani, Ameya Sanjay Ketkar, Vu Minh Le, Wode Ni, David Ellis Pugh, Arjun Radhakrishna, Ivan Radicek, Ashish Tiwari, Mark Alistair Wilson-Thomas
  • Publication number: 20230289523
    Abstract: Techniques are described herein that are capable of creating a language-agnostic computer program repair engine generator. A context-free grammar is annotated to identify token(s) that are likely to be included in or excluded from a computer program in a manner that violates the context-free grammar. A language-agnostic computer program repair engine generator is created that is configured to generate a parser. The repair engine generator is configured to create a repair engine that: converts the candidate string into repaired strings that neither violate the context-free grammar nor violate a criterion for a valid computer program; calculates differences between the candidate string and the respective repaired strings; and replaces the candidate string with a designated repaired string based at least in part on the difference between the designated repaired string and the candidate string being less than or equal to a difference threshold.
    Type: Application
    Filed: March 11, 2022
    Publication date: September 14, 2023
    Inventors: Rohan Jayesh BAVISHI, José Pablo CAMBRONERO SÁNCHEZ, Anna FARIHA, Sumit GULWANI, Vu Minh LE, Ivan RADICEK, Daniel Galen SIMMONS, Ashish TIWARI
  • Publication number: 20230280989
    Abstract: Techniques are described herein that are capable of synthesizing a computer program to include idiomatic function(s) and semantically-meaningful variable(s) using programming by example. For instance, an intent of a user to synthesize a computer program to include functionality configured to generate sample output(s) from respective input(s) is determined based at least in part on receipt of the sample input(s) and the respective sample output(s) from the user. Based at least in part on the determined intent, the computer program is synthesized to include the idiomatic function(s) by configuring the idiomatic function(s) to have the target functionality and to conform to a convention of the target domain-specific language associated with a textual representation of the computer program to be displayed to the user. Non-semantically-meaningful variable(s) included among the idiomatic function(s) are replaced with the respective semantically-meaningful variable(s).
    Type: Application
    Filed: March 4, 2022
    Publication date: September 7, 2023
    Inventors: José Pablo CAMBRONERO SÁNCHEZ, Sumit GULWANI, Vu Minh LE, Daniel PERELMAN, Arjun RADHAKRISHNA, Daniel Galen SIMMONS, Clint Michael SIMON, Ashish TIWARI
  • Publication number: 20230229850
    Abstract: Pasting content from a clipboard buffer as structured tabular data. A computer system determines a data type of content within a clipboard buffer. Based on the data type of the content, the computer system identifies a tabular pattern analysis technique to apply to the content. Based on applying the tabular pattern analysis technique to the content, the computer system identifies a portion of tabular content within the content. Using a clipboard application programming interface, the computer system presents the portion of tabular content to an application as paste data that is structured as a set of rows and a set of columns.
    Type: Application
    Filed: January 14, 2022
    Publication date: July 20, 2023
    Inventors: Mohammad RAZA, Arjun RADHAKRISHNA, José Pablo CAMBRONERO SÁNCHEZ, Sumit GULWANI, John Francis LAM, Vu Minh LE, Daniel MORRIS, Daniel Adam PERELMAN, Daniel Galen SIMMONS, Gustavo ARAUJO SOARES, Ashish TIWARI
  • Publication number: 20230176829
    Abstract: Embodiments use a multi-modal approach to generate software programs that match a solution program description. The solution program description may include natural language, input-output examples, partial source code, desired operators, or other hints. Some embodiments use optimized prompts to a pre-trained language model to obtain initial candidate programs. Maximal program components are extracted and then recombined variously using component-based synthesis. Beam search reduces a solution program search space by discarding some candidates from a given synthesis iteration. Relevance metrics, string similarity metrics, operator frequency distributions, token rareness scores, and other optimizations may be employed. By virtue of optimizations and the multi-modal approach, a solution program may be obtained after fewer iterations than by use of a language model alone.
    Type: Application
    Filed: December 7, 2021
    Publication date: June 8, 2023
    Inventors: Kiarash RAHMANI, Mohammad RAZA, Sumit GULWANI, Vu Minh LE, Daniel James MORRIS, Arjun RADHAKRISHNA, Gustavo ARAUJO SOARES, Ashish TIWARI
  • Patent number: 11620304
    Abstract: A method for transforming strings includes identifying one or more candidate example input strings from a database including a set of input strings. The candidate example input strings are presented for example transformation. For one or more of the candidate example input strings, an example output string corresponding to that example input string is received, where each example input string and its corresponding example output string define a transformation example in an example set. A string transformation program is generated based on transformation examples in the example set.
    Type: Grant
    Filed: October 20, 2016
    Date of Patent: April 4, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Ranvijay Kumar, Chairy Chiu Ying Cheung, Daniel Adam Perelman, Euan Peter Garden, Giovanni M. Della-Libera
  • Patent number: 11620115
    Abstract: Systems, methods, and computer-executable instructions for synthesizing programs using a prefix of an output. A specification of a task to synthesize a program in a domain specific language (DSL) is received. The specification includes an input and a corresponding prefix of the output. Programs for the task are synthesized. The synthesizing includes generating sub-goals based on the specification. Each of the synthesized programs include a solved subset of sub-goals and each sub-goal includes a symbol in the DSL. The symbol is transformed based on the DSL. The sub-goals are solved based on the transforming of the symbol using the input and the corresponding prefix of the output to generate the synthesized programs. The prefix of the output matches a prefix of an output from each of the plurality of synthesized programs.
    Type: Grant
    Filed: March 23, 2020
    Date of Patent: April 4, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Abhishek Udupa
  • Patent number: 11513773
    Abstract: A synthesis procedure learns program transformations for a text document, on-the-fly during an edit session, from examples of concrete edits made during the edit session and from an unsupervised set of additional inputs. The additional inputs are derived from explicit feedback from the user and inferred feedback from the user's behavior during the edit session. A reward score, based on anti-unification and provenance analysis, is used to classify the additional inputs as either a positive input or a negative input. Outputs are generated for the positive inputs that are consistent with the existing examples and then used to synthesize a new program transformation. The program transformations are then used to generate code edit suggestions during the edit session.
    Type: Grant
    Filed: September 30, 2020
    Date of Patent: November 29, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Shraddha Govind Barke, Xiang Gao, Sumit Gulwani, Alan Thomas Leung, Nachiappan Nagappan, Arjun Radhakrishna, Gustavo Araujo Soares, Ashish Tiwari, Mark Alistair Wilson-Thomas
  • Patent number: 11500894
    Abstract: Described herein are various technologies pertaining to identifying boundaries of a substring in a log file, wherein the substring is to be extracted from the log file and used to construct a table. An indication is received that a user has selected a beginning boundary of the substring, and the ending boundary of the substring is automatically identified.
    Type: Grant
    Filed: July 24, 2019
    Date of Patent: November 15, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Vu Minh Le, Sumit Gulwani
  • Publication number: 20220317978
    Abstract: Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.
    Type: Application
    Filed: April 1, 2021
    Publication date: October 6, 2022
    Inventors: Titus BARIK, Gustavo ARAUJO SOARES, Piyush ARORA, Peter GROENEWEGEN, Sumit GULWANI, Ameya Sanjay KETKAR, Vu Minh LE, Wode NI, David Ellis PUGH, Arjun RADHAKRISHNA, Ivan RADICEK, Ashish TIWARI, Mark Alistair WILSON-THOMAS
  • Publication number: 20220317979
    Abstract: Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.
    Type: Application
    Filed: April 1, 2021
    Publication date: October 6, 2022
    Inventors: Gustavo ARAUJO SOARES, Piyush ARORA, Titus BARIK, Peter GROENEWEGEN, Sumit GULWANI, Ameya Sanjay KETKAR, Vu Minh LE, Wode NI, David Ellis PUGH, Arjun RADHAKRISHNA, Ivan RADICEK, Ashish TIWARI, Mark Alistair WILSON-THOMAS