Patents by Inventor Abhishek Udupa

Abhishek Udupa 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).

  • Publication number: 20220417102
    Abstract: Described are examples for providing a system for managing configuration and policies for a virtualized wide area network (vWAN) support on a wide area network (WAN). The vWAN includes a plurality of virtual network entities associated with geographic locations including the physical computing resources of the WAN and virtual connections between the virtual network entities. The system includes a network safety component for managing configurations and policies of the vWAN on the WAN. The network safety component receives a change to a policy or configuration of the vWAN from an operator of a network connected to the vWAN. The network safety component evaluates a set of safety rules for the operator based on the change and a network state of a physical WAN underlying the vWAN. The network safety component generates an error message in response to at least one of the set of safety rules failing the evaluation.
    Type: Application
    Filed: June 25, 2021
    Publication date: December 29, 2022
    Inventors: Ryan Andrew BECKETT, Sharad AGARWAL, Paramvir BAHL, Rachee SINGH, Abhishek UDUPA
  • Patent number: 11256710
    Abstract: Examples are disclosed herein that relate to string transformation sub-program suggestion. One example provides, at a computing device, a method comprising receiving a dataset having a plurality of input strings; receiving a declarative user input associated with a desired string transformation sub-program to be performed using the dataset as input; in a search space having a plurality of string transformation sub-programs, reducing the search space based on (i) the user input and (ii) one or more of the plurality of input strings of the dataset, to thereby form a reduced search space, the reduced search space having at least one string transformation sub-program that is configured to transform one or more of the plurality of input strings of the dataset; and selecting, from the reduced search space, one or more suggested string transformation sub-programs.
    Type: Grant
    Filed: October 20, 2016
    Date of Patent: February 22, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Ranvijay Kumar, Abhishek Udupa, Craig Allen Lee, Giovanni M. Della-Libera
  • 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
  • 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: 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: 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
  • Publication number: 20190332704
    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: Application
    Filed: April 26, 2018
    Publication date: October 31, 2019
    Inventors: Sumit Gulwani, Abhishek Udupa, Michael Vollmer
  • Publication number: 20190324730
    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: April 24, 2018
    Publication date: October 24, 2019
    Inventors: Sumit Gulwani, Abhishek Udupa
  • Publication number: 20190171422
    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: Application
    Filed: December 1, 2017
    Publication date: June 6, 2019
    Inventors: Abhishek Udupa, Sumit Gulwani
  • Publication number: 20180113873
    Abstract: Examples are disclosed herein that relate to string transformation sub-program suggestion. One example provides, at a computing device, a method comprising receiving a dataset having a plurality of input strings; receiving a declarative user input associated with a desired string transformation sub-program to be performed using the dataset as input; in a search space having a plurality of string transformation sub-programs, reducing the search space based on (i) the user input and (ii) one or more of the plurality of input strings of the dataset, to thereby form a reduced search space, the reduced search space having at least one string transformation sub-program that is configured to transform one or more of the plurality of input strings of the dataset; and selecting, from the reduced search space, one or more suggested string transformation sub-programs.
    Type: Application
    Filed: October 20, 2016
    Publication date: April 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Sumit Gulwani, Ranvijay Kumar, Abhishek Udupa, Craig Allen Lee, Giovanni M. Della-Libera