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

  • Publication number: 20140236991
    Abstract: Systems and methods for generating a tuple of structured data files are described herein. In one example, a method includes detecting an expression that describes a structure of a structured image using a constructor. The method can also include using an inference-rule based search strategy to identify a hierarchical arrangement of bounding boxes in the structured image that match the expression. Furthermore, the method can include generating a first tuple of structured data files based on the identified hierarchical arrangement of bounding boxes in the structured image.
    Type: Application
    Filed: February 19, 2013
    Publication date: August 21, 2014
    Applicant: Microsoft Corporation
    Inventors: Sumit Gulwani, Oleksandr Polozov
  • Patent number: 8799234
    Abstract: Semantic entity manipulation technique embodiments are presented that generate a probabilistic program capable of manipulating character strings representing semantic entities based on input-output examples. The program can then be used to produce a desired output consistent with the input-output examples from inputs of a type included in the examples. The probabilistic program is generated based on the output of parsing, transform and formatting modules. The parsing module employs a probabilistic approach to parsing the input-output examples. The transform module identifies a weighted set of transforms that are capable of producing the output item from the input items of an input-output example to a likelihood specified by their assigned weight. The formatting module generates formatting instructions that transform selected output parts into a form specified by the output items in the input-output examples.
    Type: Grant
    Filed: February 3, 2011
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Rishabh Singh
  • Publication number: 20140214399
    Abstract: A system and method to translate natural language descriptions to programs in a domain-specific language for spreadsheets. The method includes generating a model of a spreadsheet. The model includes a column description for each column, and one or more types associated with each column The method also includes normalizing the description by removing stop words, and replacing parts that match column names or data values by parameterized place-holders. The method involves applying rule-based translation along with keyword or type-based program synthesis in an inter-leaved, bottom-up manner and dynamic programming style, where phrases are mapped to sub-programs in increasing order of their length. The rules describe how to map a specific partial natural language phrase into a partial sub-program. Also, the method includes generating a number of potential programs and ranking the programs to sequence them according to their intended likelihood.
    Type: Application
    Filed: January 29, 2013
    Publication date: July 31, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Sumit Gulwani, Mark Marron
  • Patent number: 8752029
    Abstract: A system that facilitates computing a symbolic bound with respect to a procedure that is executable by a processor on a computing device is described herein. The system includes a transition system generator component that receives the procedure and computes a disjunctive transition system for a control location in the procedure. A compute bound component computes a bound for the transition system, wherein the bound is expressed in terms of inputs to the transition system. The system further includes a translator component that translates the bound computed by the compute bound component such that the bound is expressed in terms of inputs to the procedure.
    Type: Grant
    Filed: September 29, 2009
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Florian Franz Zuleger, Sudeep Dilip Juvekar
  • Patent number: 8719801
    Abstract: Described are various techniques by which a concurrent program is analyzed with respect to timing. In one aspect, code fragments in a concurrent program are modified and/or instrumented by inserting iteration counters inside loops. Examples of modified fragments include those corresponding to concurrently executing code fragments, non-blocking concurrent code fragments, blocking concurrent code fragments, fragments having a loop that may not terminate, fragments having interlocked operation, or fragments having a timeout. Such fragments are modified and/or flagged so as to provide the summary data. When statically analyzed, the instrumented code provides complexity information regarding each fragment, or combinations of fragments, such as concurrent fragments. Summary data regarding the concurrent program is provided by processing the complexity information into at least one computation graph.
    Type: Grant
    Filed: June 25, 2008
    Date of Patent: May 6, 2014
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Raluca Carmen Sauciuc
  • Publication number: 20140108305
    Abstract: Ranking technique embodiments are presented that use statistical and machine learning techniques to learn the desired ranking function for use in inductive program synthesis for the domain of string transformations. This generally involves automatically creating a training dataset of positive and negative examples from a given set of training tasks, each including multiple input-output examples. From the training dataset, a ranking function is learned that assigns an expression in a program in the domain specific language to a likelihood measure. This ranking function is then used to compute likelihoods of learnt programs from a very small number of input-output examples for a new task.
    Type: Application
    Filed: October 17, 2012
    Publication date: April 17, 2014
    Applicant: Microsoft Corporation
    Inventors: Sumit Gulwani, Rishabh Singh
  • Publication number: 20140059078
    Abstract: Various technologies described herein pertain to executing a mixed query to search a database retained in a data repository. The mixed query includes a regular expression, which is a pattern of elements, and a semantic constraint. The elements in the regular expression include a first wildcard, where the semantic constraint restricts a meaning of the first wildcard. Moreover, the elements in the regular expression include explicit lexical constraint(s) and/or disparate wildcard(s). For instance, semantic constraint(s) can restrict meaning(s) of the disparate wildcard(s). The mixed query is executed to retrieve results that match the pattern of the elements in the regular expression and satisfy the semantic constraint(s).
    Type: Application
    Filed: August 27, 2012
    Publication date: February 27, 2014
    Applicant: Microsoft Corporation
    Inventors: Sumit Gulwani, Geoffrey Gerson Zweig
  • Patent number: 8650207
    Abstract: Inductive synthesis and combination framework technique embodiments are presented that generally perform string transformations involving lookup operations in one or more relational tables, either alone or in combination with other non-lookup operations. More particularly, a semantic string lookup transformation language is presented, which can be used to generate an inductive synthesis procedure that synthesizes a set of transformations involving lookup operations that are consistent with the given set of input-output examples. In addition, a combination framework for combining the lookup transformation language and its synthesis procedure, with other transformation languages and their associated synthesis procedures, is presented. The resulting combined synthesis procedures enable the combination framework to synthesize transformations on a rich variety of data-types.
    Type: Grant
    Filed: December 2, 2011
    Date of Patent: February 11, 2014
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Rishabh Singh, Dany Rouhana
  • Publication number: 20140013299
    Abstract: Generalization and/or specialization of code fragments is described, for example, as part of a tool for software developers. In an embodiment, a developer inserts natural language expressing a programming task into code he or she is developing in an integrated development environment; a program synthesizer obtains relevant (possibly non-compiling) code fragments for the task, merges those together to form a snippet, specializes the snippet for the context of the code and inserts the specialized snippet into the code. For example, a pair of code fragments are obtained from a search engine and are merged by discarding statements which are not common to each of the pair. In examples, pairs of code fragments are selected using search engine ranks, user input, or frequency. In embodiments, placeholders replace variable names in the merged fragments. An example takes a syntax tree of the code being developed and uses that to specialize snippets.
    Type: Application
    Filed: July 6, 2012
    Publication date: January 9, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Lucas Julien Bordeaux, Sumit Gulwani, Youssef Hamadi, Yi Wei
  • Publication number: 20130346982
    Abstract: There is provided a method and system for generating a program. The method includes detecting a number of steps for performing a task on a computing device and detecting an example relating to each of the steps, wherein the example includes input data and corresponding output data relating to the step. The method also includes, for each example, determining a rule that transforms the input data to the corresponding output data based on cues including textual features within the input data and the corresponding output data. The method further includes generating a program for performing the task based on the rules.
    Type: Application
    Filed: June 22, 2012
    Publication date: December 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Adam Kalai, Butler Lampson, Sumit Gulwani, Aditya Krishna Menon, Omer Tamuz
  • Publication number: 20130326475
    Abstract: A program creation system is described which generates sets of subprograms for respective input-output examples. The program creation system then groups the sets into partitions by performing an intersection operation. According to one aspect, the program creation system generates subprograms so as to exclude tokens that are not represented by the input strings of the input-output examples. According to another aspect, the program creation system first generates the subprograms without attempting to generate loop-type expressions. If this operation produces unsatisfactory results, the program creation system repeats its processing, this time including loop-type expressions. According to another aspect, the program creation system performs the grouping operation using an expedited graph-intersection operation.
    Type: Application
    Filed: June 4, 2012
    Publication date: December 5, 2013
    Applicant: Microsoft Corporation
    Inventors: Sumit Gulwani, Rishabh Singh, Dany Rouhana, Benjamin G. Zorn, Weide Zhong
  • Publication number: 20130275847
    Abstract: Described herein are mechanisms for automatically generating a computer-executable program that transforms a first table in a first format to a second table in a second format by way of user-provided examples. A user provides an exemplary input table of a first format, where the input table may be a portion of the first table. The user also provides an exemplary output table of a second format, wherein contents of the output table correspond to contents of the input table. Based upon these user-provided examples, a table transform program is automatically generated, wherein the table transform program, when executed over the first table generates the second table.
    Type: Application
    Filed: June 6, 2013
    Publication date: October 17, 2013
    Inventors: Sumit Gulwani, William Robert Harris
  • Publication number: 20130188877
    Abstract: A sketch processing system is described herein for assisting a user in producing a drawing. In one implementation, the sketch processing system operates by: receiving ink strokes in response to creation of an original drawing; recognizing components and geometric constraints within the original drawing, to produce a recognized drawing; beautifying the original drawing by modifying at least one aspect of the recognized drawing in accordance with the recognized constraints, to produce a beautified drawing; and recognizing a recurring pattern in the beautified pattern (if any) and using that pattern to produce at least one added component to the beautified drawing.
    Type: Application
    Filed: January 24, 2012
    Publication date: July 25, 2013
    Applicant: Microsoft Corporation
    Inventors: Sumit Gulwani, Salman Shaukat Cheema, Joseph J. LaViola, JR.
  • Patent number: 8484550
    Abstract: Described herein are mechanisms for automatically generating a computer-executable program that transforms a first table in a first format to a second table in a second format by way of user-provided examples. A user provides an exemplary input table of a first format, where the input table may be a portion of the first table. The user also provides an exemplary output table of a second format, wherein contents of the output table correspond to contents of the input table. Based upon these user-provided examples, a table transform program is automatically generated, wherein the table transform program, when executed over the first table generates the second table.
    Type: Grant
    Filed: January 27, 2011
    Date of Patent: July 9, 2013
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, William Robert Harris
  • Publication number: 20130144902
    Abstract: Inductive synthesis and combination framework technique embodiments are presented that generally perform string transformations involving lookup operations in one or more relational tables, either alone or in combination with other non-lookup operations. More particularly, a semantic string lookup transformation language is presented, which can be used to generate an inductive synthesis procedure that synthesizes a set of transformations involving lookup operations that are consistent with the given set of input-output examples. In addition, a combination framework for combining the lookup transformation language and its synthesis procedure, with other transformation languages and their associated synthesis procedures, is presented. The resulting combined synthesis procedures enable the combination framework to synthesize transformations on a rich variety of data-types.
    Type: Application
    Filed: December 2, 2011
    Publication date: June 6, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Sumit Gulwani, Rishabh Singh, Dany Rouhana
  • Patent number: 8402439
    Abstract: Described is a technology by which program analysis uses rich invariant templates that may specify an arbitrary Boolean combination of linear inequalities for program verification. Also described is choosing a cut-set that identifies program locations, each of which is associated with an invariant template. The verification generates second-order constraints, converts second-order logic formula based on those constraints into first-order logic formula, then converts the first-order logic formula into a quantifier-free formula, which is then converted into a Boolean satisfiability formula. Off-the-shelf constraint solvers may then be applied to the Boolean satisfiability formula to generate program analysis results. Various templates may be used to convert the second-order logic formula into the first-order logic formula.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: March 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Saurabh Srivastava, Ramarathnam Venkatesan
  • Patent number: 8397221
    Abstract: Bounding resource consumption of code that processes recursive data structures and collections includes making use of quantitative functions (based on user input) that are associated with a tuple of data-structures and whose semantics is specified by describing the effect of various data-structure methods on the relevant quantitative functions. Counter variables are incorporated into source code to count loop iterations (and number of recursive procedure call invocations). Relevant quantitative functions are incorporated into the source code to allow computation of invariants (and hence bounds) on the incorporated counter variables in terms of the quantitative functions.
    Type: Grant
    Filed: October 7, 2008
    Date of Patent: March 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Krishna Kumar Mehra, Trishul A Chilimbi
  • Patent number: 8316345
    Abstract: Embodiments described herein relate to determining an abstraction of a computer program and to the refinement of an abstraction of a computer program. The computer program may be a sequential program or may be a concurrent (parallel) program. A directed graph represents a computer program and may be the cross product of threads within a concurrent program. Nodes within a representation of a program are reduced to a single node to produce an abstraction. An abstraction may be refined by determining constraints that produce a refined abstraction that does not comprise infeasible paths.
    Type: Grant
    Filed: June 1, 2007
    Date of Patent: November 20, 2012
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Akash Lal
  • Patent number: 8271404
    Abstract: Techniques are disclosed for generating complex invariants in a program using a Satisfiability Modulo Theories (SMT) solver. In one embodiment, the generated invariants may be used to validate assert statements in a program. Additionally or alternatively, a weakest pre-condition invariant may be generated such that parameters passed to the program that satisfy the weakest pre-condition are guaranteed to satisfy the program's assert statements. Additionally or alternatively, a strongest post-condition may be generated, determining what is guaranteed to be true about the state of the program upon completion of the program. In one embodiment, the SMT solver generates invariants by mapping predicates onto unknown variables in a template. The template may comprise unknown variables related by logical structures defined with disjunctions, universal quantifiers, and existential quantifiers. The predicates may comprise equalities and inequalities between program variables.
    Type: Grant
    Filed: October 2, 2008
    Date of Patent: September 18, 2012
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Ramarathnam Venkatesan, Saurabh Srivastava
  • Patent number: 8266598
    Abstract: Bounding resource consumption of code using abstract interpretation includes a static analysis to estimate a code's resource consumption in terms of units of resources utilized at any point during execution, expressed as a function of its scalar inputs. An instrumentation mechanism and an abstract interpretation mechanism are employed to compute bounds on the code resource consumption. The instrumentation mechanism includes incorporating one or more counter variables in the source code to count the number of loop iterations and recursive procedure call invocations. The abstract interpretation mechanism includes computing invariants on the instrumented counter variables and scalar program variables to obtain bounds on the number of loop iterations and recursive procedure call invocations, which are then composed together to obtain resource bounds for the entire program.
    Type: Grant
    Filed: May 5, 2008
    Date of Patent: September 11, 2012
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Krishna Kumar Mehra, Trishul A Chilimbi