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: 11194800Abstract: Systems, methods, and computer-executable instructions for parallel searching in program synthesis. A task to synthesize in a domain specific language (DSL) is received. The task is synthesized. Synthesizing the task includes generating sub-goals based on the task. The synthesized task includes a subset of the sub-goals. An estimated completion time for each of the sub-goals is expressed using the DSL is determined. The sub-goals are scheduled based on the estimated completion time. Some of the sub-goals are scheduled to be executed in parallel. The sub-goals are solved based on the scheduling to synthesize the task in the DSL. An elapsed real time to complete the synthesizing the task is reduced compared to scheduling the sub-goals in an order based on sub-goal generation.Type: GrantFiled: April 26, 2018Date of Patent: December 7, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Sumit Gulwani, Abhishek Udupa, Michael Vollmer
-
Publication number: 20210349698Abstract: Flexible yet efficient “find” operations search source code for matches to a general pattern after a developer provides an example string that matches the pattern, without requiring the developer to write a regular expression or script that will implement the desired pattern. Example-driven find-replace functionality uses regular expressions or other pattern match codes, and scripts or other transforms, which are synthesized automatically from examples provided by a developer. This technology allows the developer to focus on workflow inside an integrated development environment instead of breaking focus to search for external documentation, or unfortunately foregoing the flexibility and power of regular expressions and scripts. Synthesizer outputs may be directly or indirectly ranked through user feedback, allowing their refinement. Find match generality may be controlled, e.g., by specifying regex star positions or star counts. Entry of guiding examples may be assisted by autocompletion.Type: ApplicationFiled: May 7, 2020Publication date: November 11, 2021Inventors: Mark Alistair WILSON-THOMAS, Vu Minh LE, Sumit GULWANI
-
Patent number: 11132180Abstract: Systems, methods, and computer-executable instructions for guiding program synthesis includes receiving a specification that includes an input and output example. Programs are synthesized that meet the specification. During synthesizing each of the programs includes branching decisions. Each branching decision includes a plurality of paths. Synthesizing the programs comprises includes selecting a first score model, for a first branching decision. Each of the programs is scored using the first score model. The paths of the first branching decision are pared based on the score. One the paths is selected. A synthesized program that meets the specification is returned. The synthesized program includes the one of the paths.Type: GrantFiled: June 26, 2018Date of Patent: September 28, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Oleksandr Polozov, Sumit Gulwani, Prateek Jain, Ashwin Kalyan Vijayakumar, Abhishek Mohta
-
Patent number: 11074048Abstract: In a computer program, sublanguage code snippets implement regular expressions, pattern matching, print formatting, component selection, and other operations, using sublanguage syntax and semantics different from the source code in which snippets are embedded. Writing snippets that give desired execution results has been difficult and interfered with software development workflow. But sublanguage snippet presentation functionality in an enhanced development tool automatically detects source code locations suitable for snippets, receives snippet execution result examples from a developer, submits the examples to synthesis-by-example technology, gets autosynthesized snippets that give those results, and displays snippet insertion candidates with guidance. A snippet selected by the developer replaces the example(s) in the source code, improving developer productivity and program execution accuracy with respect to documented test cases.Type: GrantFiled: April 28, 2020Date of Patent: July 27, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Mark Alistair Wilson-Thomas, Ivan Radicek, Arjun Radhakrishna, Ashish Tiwari, Sumit Gulwani, Titus Barik
-
Patent number: 10983813Abstract: Automatically identifying context-specific repeated transformations (such as repeated edit tasks) that are based on observation of the developer drafting or modifying code. As the developer modifies the code, the code passes through a series of states, one after the other. The computing system observes the series of states of the code. It is based on this observation that the computing system identifies repeated transformations of the code for potentially offering to continue performing the repeated transformations for the user. This alleviates the developer from having to manually perform the remainder of the repeated transformations.Type: GrantFiled: October 3, 2019Date of Patent: April 20, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Sumit Gulwani, Arjun Radhakrishna, Abhishek Udupa, Gustavo Araujo Soares, Vu Minh Le, Anders Miltner, Mark A. Wilson-Thomas
-
Patent number: 10956433Abstract: Described herein are various technologies pertaining to performing an operation relative to tabular data based upon voice input. An ASR system includes a language model that is customized based upon content of the tabular data. The ASR system receives a voice signal that is representative of speech of a user. The ASR system creates a transcription of the voice signal based upon the ASR being customized with the content of the tabular data. The operation relative to the tabular data is performed based upon the transcription of the voice signal.Type: GrantFiled: May 21, 2014Date of Patent: March 23, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Prabhdeep Singh, Kris Ganjam, Sumit Gulwani, Mark Marron, Yun-Cheng Ju, Kaushik Chakrabarti
-
Patent number: 10909139Abstract: Systems and techniques for structured query language (SQL) query formatting by examples are described herein. In an example, a SQL query formatter is adapted to receive a SQL statement, such that the SQL statement is formed using SQL tokens. The SQL query formatter may be further adapted to use a SQL formatter model to format the SQL statement, which results in a formatted SQL statement. The SQL formatter model may be trained using at least one previously executed SQL statement. The SQL formatter model may include format definitions for SQL tokens. The SQL query formatter may be further adapted to output the formatted SQL statement.Type: GrantFiled: June 13, 2018Date of Patent: February 2, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Vu Minh Le, Gustavo Araujo Soares, Sumit Gulwani
-
Patent number: 10860551Abstract: Described herein are various technologies pertaining to processing a log file, such that the processed log file is well-suited for analysis by a programming by example (PBE) system. When processing the log file, header lines and comment lines in the log file can be automatically identified and filtered from the log file, such that the PBE system does not contemplate the header lines and comment lines. Further, when processing the log file, boundaries of records in the log file can be identified without requiring user input. The PBE system constructs a table based upon the identified boundaries of the records in the log file, wherein the table includes rows that correspond to the records, and further wherein the table fails to include rows that correspond to header lines and comment lines.Type: GrantFiled: November 30, 2016Date of Patent: December 8, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Vu Minh Le, Sumit Gulwani
-
Patent number: 10846298Abstract: A method for generating a smaller dataset from a larger dataset, each dataset holding a plurality of records, includes profiling the larger dataset to identify a plurality of patterns, each of which is descriptive of one or more records held in the larger dataset. A plurality of slots of the smaller dataset is filled with records held in the larger dataset. Multiple records held in the larger dataset are individually retrieved, and for each retrieved record it is determined whether to place the retrieved record into a slot of the smaller dataset and evict a record already occupying that slot, or not place the retrieved record into the smaller dataset. This determination is based on a pattern of the retrieved record and a representation status of the pattern in the smaller dataset.Type: GrantFiled: October 28, 2016Date of Patent: November 24, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Daniel G. Simmons, Kevin David James Grealish, Sumit Gulwani, Ranvijay Kumar, Kevin Michael Ellis, Saswat Padhi
-
Patent number: 10831451Abstract: Systems, methods, and computer-executable instructions for synthesizing a performant program include receiving a plurality of input examples. A plurality of input and output data pairs are generated using the input examples as input to the synthesized program. An expanded equivalence set is generated from the plurality of input and output data pairs. The expanded equivalence set is input to a synthesis engine to synthesize a first performant program. The first performant program is received. The first performant program does not satisfy at least one input and output data pair of the plurality of input and output data pairs. At least one input and output data pairs is added to the equivalence set. The equivalence set of input and output data pairs to the synthesis engine to synthesize a second performant program. The second performant program is determined to satisfy each of the plurality of input and output data pairs.Type: GrantFiled: December 1, 2017Date of Patent: November 10, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Abhishek Udupa, Sumit Gulwani
-
Publication number: 20200334054Abstract: Automatically identifying context-specific repeated transformations (such as repeated edit tasks) that are based on observation of the developer drafting or modifying code. As the developer modifies the code, the code passes through a series of states, one after the other. The computing system observes the series of states of the code. It is based on this observation that the computing system identifies repeated transformations of the code for potentially offering to continue performing the repeated transformations for the user. This alleviates the developer from having to manually perform the remainder of the repeated transformations.Type: ApplicationFiled: October 3, 2019Publication date: October 22, 2020Inventors: Sumit GULWANI, Arjun RADHAKRISHNA, Abhishek UDUPA, Gustavo ARAUJO SOARES, Vu Minh LE, Anders MILTNER, Mark A. WILSON-THOMAS
-
Publication number: 20200257509Abstract: 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: ApplicationFiled: March 23, 2020Publication date: August 13, 2020Inventors: Sumit Gulwani, Abhishek Udupa
-
Patent number: 10713424Abstract: Systems and methods may be used to present changes to a document on a user interface. A method may include receiving, on the user interface, a user input including an edit task to a first portion of a document. The method may include determining, using a processor, that a second portion of the document includes text changeable by the edit task. The method may include automatically performing the edit task on the second portion of the document within the user interface based on the determination.Type: GrantFiled: April 10, 2018Date of Patent: July 14, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Zhouying Fan, Yichen Wang, Dario Pavlovic, Theresa A. Estrada, Sumit Gulwani, Jeffrey Weston, Daniel Adam Perelman, Itai Rosenberger
-
Patent number: 10698571Abstract: Technologies for narrowing the choices for programs that each comply with example behaviors provided by a user in programming by example. Even if the user provides insufficient behavior examples to precisely identify a program that should be used, the system still uses program behavior features (along with potentially structure features) of the program in order to identify suitability of each program that would comply with the specific set of behavior examples. A particular program is then selected and enabled for that user so that the particular program performs behaviors exemplified by the one or more program behavior examples. In the case where user assistance is used in selection of the program, the suitability for each possible program may be used to decide which of multiple possible programs should be made selectable by the user. Those higher suitability programs might be visualized to the user for selection.Type: GrantFiled: December 29, 2016Date of Patent: June 30, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Sumit Gulwani, Kevin Michael Ellis
-
Patent number: 10691655Abstract: Various technologies pertaining to extracting data encoded in a tree-structured document and generating a table based upon the extracted data are described herein. In a first embodiment, the table is generated without requiring input from a data cleaner. In a second embodiment, the table is generated based upon examples set forth by a data cleaner.Type: GrantFiled: October 20, 2016Date of Patent: June 23, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Vu Minh Le, Sumit Gulwani, Ranvijay Kumar, Chiu Ying Cheung
-
Patent number: 10671353Abstract: Systems, methods, and computer-executable instructions for synthesizing a program for a task. A domain specific language that includes a disjunctive symbol and an input/output example for the task are received. A program for the task is synthesized based on the input/output example and the domain specific language. Sub-programs for an instance of the disjunctive symbol are synthesized, A set of feature calculators and target feature values are determined. The program for the task is returned. The program includes the sub-programs, the set of feature calculators and the target feature values.Type: GrantFiled: January 31, 2018Date of Patent: June 2, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Mohammad Raza, Sumit Gulwani
-
Patent number: 10664530Abstract: Various technologies described herein pertain to controlling execution of an automated search task on search results returned by a search engine. The search results are received, where the search results are returned by the search engine responsive to the search engine receiving a seed query. An instantiation of a parameterized query for the automated search task is executed over documents specified by the search results, where the instantiation of the parameterized query describes a linguistic pattern, a structural pattern, and a visual pattern. Further, a set of answer strings is extracted from the documents. The answer strings in the set match the linguistic pattern, the structural pattern, and the visual pattern. The search engine is controlled to provide an output in response to the user search query, the output being based on the set of answer strings extracted from the documents.Type: GrantFiled: February 11, 2015Date of Patent: May 26, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Sumit Gulwani, Oleksandr Polozov, Saurabh Kumar Tiwary
-
Patent number: 10635414Abstract: 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: April 24, 2018Date of Patent: April 28, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Sumit Gulwani, Abhishek Udupa
-
Patent number: 10599627Abstract: Techniques are disclosed which provide for transforming a hierarchical table to a relational table. A hierarchical table may be received, in which a headline row is identified. A candidate row may be determined in the hierarchical table. The process may include systematically classifying headlines as data headlines or descriptors. For each data headline a new column may be generated, while for each descriptor headline, the table may be split to produce a resultant table. The resultant table may be stored and the process may be repeated until there are no headlines left to be classified. The steps performed by the system to transform the table can then be displayed on a user device using a program in the Domain-specific language, which can then be further inspected or modified to perform the desired table transformation.Type: GrantFiled: February 27, 2017Date of Patent: March 24, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Rishabh Singh, Sumit Gulwani, Dana Drachsler Cohen
-
Patent number: 10585888Abstract: A computing device is provided, comprising a processor configured to select at least one pair of tuples of columns including a source tuple from a first table and a target tuple from a second table. For each pair, the processor may select one or more rows from the source tuple and elements of the target tuple. For each selected row, the processor may programmatically generate a script that, when performed on the source tuple, produces a value consistent with the target tuple. The processor may apply each script to other rows of the source tuple and determine that an output is in the target tuple. For each column of the target tuple, for the script with output that meets a matching criterion, the processor may convey the output and, in response to a signal accepting the script, join the tables at least in part by performing each accepted script.Type: GrantFiled: October 20, 2016Date of Patent: March 10, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung