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: 12282411Abstract: 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: GrantFiled: January 26, 2023Date of Patent: April 22, 2025Assignee: Microsoft Technology Licensing, LLCInventors: Jialu Zhang, José Pablo Cambronero Sánchez, Gustavo Araujo Soares, Vu Minh Le, Sumit Gulwani, Gust Ben Anneloes Verbruggen
-
Patent number: 12265789Abstract: 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: GrantFiled: March 11, 2022Date of Patent: April 1, 2025Assignee: Microsoft Technology Licensing, LLCInventors: Rohan Jayesh Bavishi, José Pablo Cambronero Sánchez, Anna Fariha, Sumit Gulwani, Vu Minh Le, Ivan Radicek, Daniel Galen Simmons, Ashish Tiwari
-
Patent number: 12222911Abstract: 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: GrantFiled: September 28, 2023Date of Patent: February 11, 2025Assignee: Microsoft Technology Licensing, LLCInventors: Mukul Singh, José Pablo Cambronero Sánchez, Sumit Gulwani, Vu Minh Le, Carina Suzana Negreanu, Gust Ben Anneloes Verbruggen
-
Publication number: 20240256423Abstract: 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: ApplicationFiled: January 26, 2023Publication date: August 1, 2024Inventors: Jialu ZHANG, José Pablo CAMBRONERO SÁNCHEZ, Gustavo ARAUJO SOARES, Vu Minh LE, Sumit GULWANI, Gust Ben Anneloes VERBRUGGEN
-
Publication number: 20240184979Abstract: 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: ApplicationFiled: December 6, 2022Publication date: June 6, 2024Inventors: 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: 20240143562Abstract: 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: ApplicationFiled: December 20, 2023Publication date: May 2, 2024Inventors: Mohammad Raza, Sumit Gulwani
-
Patent number: 11941372Abstract: 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: GrantFiled: April 1, 2021Date of Patent: March 26, 2024Assignee: Microsoft Technology Licensing, LLCInventors: 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: 11934801Abstract: 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: GrantFiled: December 7, 2021Date of Patent: March 19, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Kiarash Rahmani, Mohammad Raza, Sumit Gulwani, Vu Minh Le, Daniel James Morris, Arjun Radhakrishna, Gustavo Araujo Soares, Ashish Tiwari
-
Patent number: 11892987Abstract: 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: GrantFiled: October 20, 2016Date of Patent: February 6, 2024Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Mohammad Raza, Sumit Gulwani
-
Patent number: 11875136Abstract: 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: GrantFiled: April 1, 2021Date of Patent: January 16, 2024Assignee: Microsoft Technology Licensing, LLCInventors: 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: 20230289523Abstract: 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: ApplicationFiled: March 11, 2022Publication date: September 14, 2023Inventors: Rohan Jayesh BAVISHI, José Pablo CAMBRONERO SÁNCHEZ, Anna FARIHA, Sumit GULWANI, Vu Minh LE, Ivan RADICEK, Daniel Galen SIMMONS, Ashish TIWARI
-
Publication number: 20230280989Abstract: 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: ApplicationFiled: March 4, 2022Publication date: September 7, 2023Inventors: José Pablo CAMBRONERO SÁNCHEZ, Sumit GULWANI, Vu Minh LE, Daniel PERELMAN, Arjun RADHAKRISHNA, Daniel Galen SIMMONS, Clint Michael SIMON, Ashish TIWARI
-
Publication number: 20230229850Abstract: 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: ApplicationFiled: January 14, 2022Publication date: July 20, 2023Inventors: 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: 20230176829Abstract: 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: ApplicationFiled: December 7, 2021Publication date: June 8, 2023Inventors: Kiarash RAHMANI, Mohammad RAZA, Sumit GULWANI, Vu Minh LE, Daniel James MORRIS, Arjun RADHAKRISHNA, Gustavo ARAUJO SOARES, Ashish TIWARI
-
Patent number: 11620304Abstract: 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: GrantFiled: October 20, 2016Date of Patent: April 4, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Sumit Gulwani, Ranvijay Kumar, Chairy Chiu Ying Cheung, Daniel Adam Perelman, Euan Peter Garden, Giovanni M. Della-Libera
-
Patent number: 11620115Abstract: 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: GrantFiled: March 23, 2020Date of Patent: April 4, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Sumit Gulwani, Abhishek Udupa
-
Patent number: 11513773Abstract: 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: GrantFiled: September 30, 2020Date of Patent: November 29, 2022Assignee: 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: 11500894Abstract: 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: GrantFiled: July 24, 2019Date of Patent: November 15, 2022Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Vu Minh Le, Sumit Gulwani
-
Publication number: 20220317978Abstract: 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: ApplicationFiled: April 1, 2021Publication date: October 6, 2022Inventors: 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: 20220317979Abstract: 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: ApplicationFiled: April 1, 2021Publication date: October 6, 2022Inventors: 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