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: 11194800
    Abstract: 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: Grant
    Filed: April 26, 2018
    Date of Patent: December 7, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Abhishek Udupa, Michael Vollmer
  • Publication number: 20210349698
    Abstract: 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: Application
    Filed: May 7, 2020
    Publication date: November 11, 2021
    Inventors: Mark Alistair WILSON-THOMAS, Vu Minh LE, Sumit GULWANI
  • Patent number: 11132180
    Abstract: 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: Grant
    Filed: June 26, 2018
    Date of Patent: September 28, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Oleksandr Polozov, Sumit Gulwani, Prateek Jain, Ashwin Kalyan Vijayakumar, Abhishek Mohta
  • Patent number: 11074048
    Abstract: 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: Grant
    Filed: April 28, 2020
    Date of Patent: July 27, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mark Alistair Wilson-Thomas, Ivan Radicek, Arjun Radhakrishna, Ashish Tiwari, Sumit Gulwani, Titus Barik
  • Patent number: 10983813
    Abstract: 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: Grant
    Filed: October 3, 2019
    Date of Patent: April 20, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Arjun Radhakrishna, Abhishek Udupa, Gustavo Araujo Soares, Vu Minh Le, Anders Miltner, Mark A. Wilson-Thomas
  • Patent number: 10956433
    Abstract: 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: Grant
    Filed: May 21, 2014
    Date of Patent: March 23, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Prabhdeep Singh, Kris Ganjam, Sumit Gulwani, Mark Marron, Yun-Cheng Ju, Kaushik Chakrabarti
  • Patent number: 10909139
    Abstract: 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: Grant
    Filed: June 13, 2018
    Date of Patent: February 2, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Vu Minh Le, Gustavo Araujo Soares, Sumit Gulwani
  • Patent number: 10860551
    Abstract: 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: Grant
    Filed: November 30, 2016
    Date of Patent: December 8, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Vu Minh Le, Sumit Gulwani
  • Patent number: 10846298
    Abstract: 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: Grant
    Filed: October 28, 2016
    Date of Patent: November 24, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Daniel G. Simmons, Kevin David James Grealish, Sumit Gulwani, Ranvijay Kumar, Kevin Michael Ellis, Saswat Padhi
  • Patent number: 10831451
    Abstract: 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: Grant
    Filed: December 1, 2017
    Date of Patent: November 10, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Abhishek Udupa, Sumit Gulwani
  • Publication number: 20200334054
    Abstract: 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: Application
    Filed: October 3, 2019
    Publication date: October 22, 2020
    Inventors: Sumit GULWANI, Arjun RADHAKRISHNA, Abhishek UDUPA, Gustavo ARAUJO SOARES, Vu Minh LE, Anders MILTNER, Mark A. WILSON-THOMAS
  • Publication number: 20200257509
    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: Application
    Filed: March 23, 2020
    Publication date: August 13, 2020
    Inventors: Sumit Gulwani, Abhishek Udupa
  • Patent number: 10713424
    Abstract: 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: Grant
    Filed: April 10, 2018
    Date of Patent: July 14, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Zhouying Fan, Yichen Wang, Dario Pavlovic, Theresa A. Estrada, Sumit Gulwani, Jeffrey Weston, Daniel Adam Perelman, Itai Rosenberger
  • Patent number: 10698571
    Abstract: 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: Grant
    Filed: December 29, 2016
    Date of Patent: June 30, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Kevin Michael Ellis
  • Patent number: 10691655
    Abstract: 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: Grant
    Filed: October 20, 2016
    Date of Patent: June 23, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Vu Minh Le, Sumit Gulwani, Ranvijay Kumar, Chiu Ying Cheung
  • Patent number: 10671353
    Abstract: 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: Grant
    Filed: January 31, 2018
    Date of Patent: June 2, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mohammad Raza, Sumit Gulwani
  • Patent number: 10664530
    Abstract: 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: Grant
    Filed: February 11, 2015
    Date of Patent: May 26, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Oleksandr Polozov, Saurabh Kumar Tiwary
  • Patent number: 10635414
    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: April 24, 2018
    Date of Patent: April 28, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Abhishek Udupa
  • Patent number: 10599627
    Abstract: 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: Grant
    Filed: February 27, 2017
    Date of Patent: March 24, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Rishabh Singh, Sumit Gulwani, Dana Drachsler Cohen
  • Patent number: 10585888
    Abstract: 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: Grant
    Filed: October 20, 2016
    Date of Patent: March 10, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sumit Gulwani, Daniel Adam Perelman, Ranvijay Kumar, Euan Peter Garden, Chairy Chiu Ying Cheung