Patents by Inventor Miltiadis Allamanis

Miltiadis Allamanis 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: 20240061655
    Abstract: A code generation system uses a non-terminal expansion model and a non-terminal selector model to generate a code sketch to complete a partially-formed source code snippet. The non-terminal expansion model is a neural transformer model trained on a supervised dataset through reinforcement learning to learn to predict the production rule to expand for a given non-terminal symbol. The non-terminal selector model is trained through reinforcement learning to predict the non-terminal symbol to expand given a partial-code state. The models are used in a two-step beam search to generate the top candidate code sketches, where a candidate code sketch may contain a hole that represents an unexpanded non-terminal symbol.
    Type: Application
    Filed: November 3, 2023
    Publication date: February 22, 2024
    Inventors: MILTIADIS ALLAMANIS, DAYA GUO, NEELAKANTAN SUNDARESAN, ALEXEY SVYATKOVSKIY
  • Patent number: 11836467
    Abstract: A code generation system uses a non-terminal expansion model and a non-terminal selector model to generate a code sketch to complete a partially-formed source code snippet. The non-terminal expansion model is a neural transformer model trained on a supervised dataset through reinforcement learning to learn to predict the production rule to expand for a given non-terminal symbol. The non-terminal selector model is trained through reinforcement learning to predict the non-terminal symbol to expand given a partial-code state. The models are used in a two-step beam search to generate the top candidate code sketches, where a candidate code sketch may contain a hole that represents an unexpanded non-terminal symbol.
    Type: Grant
    Filed: August 16, 2021
    Date of Patent: December 5, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Miltiadis Allamanis, Daya Guo, Neelakantan Sundaresan, Alexey Svyatkovskiy
  • Publication number: 20230305824
    Abstract: A code adaptation mechanism automatically integrates the variable names of a pasted source code snippet into variable names defined in a pre-existing partial source code program. The variable names from the pasted source code snippet are replaced with anonymized values. A deep learning model predicts the most likely variable name from the pre-existing partial source code program to replace each anonymized value. The deep learning model is trained on numerous variable usage patterns from various source code programs to learn to predict the most likely mapping of an undefined variable name from the pasted source code snippet to a variable name in the pre-existing partial source code program thereby generating a syntactically and semantically correct program.
    Type: Application
    Filed: March 24, 2022
    Publication date: September 28, 2023
    Inventors: MILTIADIS ALLAMANIS, SHENGYU FU, XIAOYU LIU, NEELAKANTAN SUNDARESAN, ALEXEY SVYATKOVSKIY
  • Publication number: 20230229906
    Abstract: A computer-implemented method comprising: accessing a machine learning, ML, model that is operable to sample a causal graph from a graph distribution describing different possible graphs, wherein nodes represent the different variables of said set and edges represent causation, and the graph distribution comprises a matrix of probabilities of existence and causal direction of potential edges between pairs of nodes, and wherein the ML model is trained to be able to generate a respective simulated value of a selected variable from among said set based on the sampled causal graph. The method further comprises using the ML model to estimate a treatment effect from one or more intervened-on variables on another, target variable from among the variables of said set.
    Type: Application
    Filed: January 20, 2022
    Publication date: July 20, 2023
    Inventors: Cheng ZHANG, Javier ANTORAN, Adam Evan FOSTER, Maria DEFANTE, Steve THOMAS, Tomas GEFFNER, Miltiadis ALLAMANIS, Karen FASSIO, Daniel TRUAX
  • Publication number: 20220398071
    Abstract: A code generation system uses a non-terminal expansion model and a non-terminal selector model to generate a code sketch to complete a partially-formed source code snippet. The non-terminal expansion model is a neural transformer model trained on a supervised dataset through reinforcement learning to learn to predict the production rule to expand for a given non-terminal symbol. The non-terminal selector model is trained through reinforcement learning to predict the non-terminal symbol to expand given a partial-code state. The models are used in a two-step beam search to generate the top candidate code sketches, where a candidate code sketch may contain a hole that represents an unexpanded non-terminal symbol.
    Type: Application
    Filed: August 16, 2021
    Publication date: December 15, 2022
    Inventors: MILTIADIS ALLAMANIS, DAYA GUO, NEELAKANTAN SUNDARESAN, ALEXEY SVYATKOVSKIY
  • Publication number: 20220374208
    Abstract: A code completion tool uses a neural transformer model with attention to generate syntactically-correct candidates with holes to complete a partially-formed code snippet. The model is trained to predict the expansion of non-terminal symbols of the production rules of the underlying grammar of the code snippet without being constrained to a left-to-right expansion order. A hole is a non-terminal symbol of the grammar of a programming language that marks a position in a candidate where the code completion engine is not certain of the production rule that should be used to expand the non-terminal symbol. The hole allows the code completion engine to expand other non-terminal symbols in a candidate and allow the user to guide the expansion of the holes in a candidate.
    Type: Application
    Filed: May 15, 2021
    Publication date: November 24, 2022
    Inventors: MILTIADIS ALLAMANIS, DAYA GUO, SHAO KUN DENG, NEELAKANTAN SUNDARESAN, ALEXEY SVYATKOVSKIY
  • Patent number: 11307831
    Abstract: A code completion system uses neural components to rank the unordered list of code completion candidates generated from an existing static analyzer. The candidates represent the next sequence of tokens likely to complete a partially-formed program element as a developer is typing in a software development tool. A re-ranking component generates a ranked order of the candidates based on a context embedding of the code context and candidate embeddings of the candidates, where both embeddings are based a common token encoding.
    Type: Grant
    Filed: June 15, 2020
    Date of Patent: April 19, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Miltiadis Allamanis, Shengyu Fu, Xiaoyu Liu, Neelakantan Sundaresan, Alexey Svyatkovskiy
  • Patent number: 11150875
    Abstract: An editing tool is described which has a memory storing a neural network having been trained to compute a change representation from pairs, each pair comprising a representation of a first version of a content item and a second version of the content item, and for each of the change representations, predict an updated content item from the change representation and the first version of the content item. The editing tool has a processor configured to receive an input content item and to compute an updated version of the input content item according to a change representation, using the neural network.
    Type: Grant
    Filed: September 27, 2018
    Date of Patent: October 19, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Marc Manuel Johannes Brockschmidt, Miltiadis Allamanis, Alexander Lloyd Gaunt, Pengcheng Yin
  • Publication number: 20210279042
    Abstract: A code completion system uses neural components to rank the unordered list of code completion candidates generated from an existing static analyzer. The candidates represent the next sequence of tokens likely to complete a partially-formed program element as a developer is typing in a software development tool. A re-ranking component generates a ranked order of the candidates based on a context embedding of the code context and candidate embeddings of the candidates, where both embeddings are based a common token encoding.
    Type: Application
    Filed: June 15, 2020
    Publication date: September 9, 2021
    Inventors: MILTIADIS ALLAMANIS, SHENGYU FU, XIAOYU LIU, NEELAKANTAN SUNDARESAN, ALEXEY SVYATKOVSKIY
  • Publication number: 20200104102
    Abstract: An editing tool is described which has a memory storing a neural network having been trained to compute a change representation from pairs, each pair comprising a representation of a first version of a content item and a second version of the content item, and for each of the change representations, predict an updated content item from the change representation and the first version of the content item. The editing tool has a processor configured to receive an input content item and to compute an updated version of the input content item according to a change representation, using the neural network.
    Type: Application
    Filed: September 27, 2018
    Publication date: April 2, 2020
    Inventors: Marc Manuel Johannes BROCKSCHMIDT, Miltiadis ALLAMANIS, Alexander Lloyd GAUNT, Pengcheng YIN
  • Patent number: 10481879
    Abstract: Improving how a codebase, which may include source code, related databases, test files, code history, and/or changes, is drafted, edited, debugged, or otherwise developed. Machine learning is performed on a model codebase to establish a machine learning model. When a change to a codebase occurs, the machine learning model may be applied to evaluate that change. A change context providing context for this change is accessed. An analyzer then analyzes the change using the machine learning model and at least a part of the change context to generate an analysis result. Some information about the result is rendered. After rendering that information, a determination regarding how a user responded to the information is performed, and a subsequent analysis is then modified based on the user's response.
    Type: Grant
    Filed: March 30, 2018
    Date of Patent: November 19, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Joshua Bates Stevens, John S. Tilford, Guillermo Serrato Castilla, Srivatsn Narayanan, Simon Calvert, Mark Alistair Wilson-Thomas, Deborah Chen, Miltiadis Allamanis, Marc Manuel Johannes Brockschmidt, Kesavan Shanmugam
  • Patent number: 10452367
    Abstract: Improving how a codebase is developed by analyzing the variables in the codebase's source code. Learned characteristics of a codebase are derived by obtaining context for some of the source code's variables. This context represents semantics and/or patterns associated with those variables. Once the learned characteristics are derived, they are then modified, or rather tuned, by incorporating context from second source code. Particular context for a particular variable used within the second source code is then obtained. This particular context represents semantics and/or patterns associated with the particular variable. This particular context is then analyzed using the learned characteristics to generate zero, one or more anticipated variables. Later, a notification regarding these anticipated variables is displayed. In some situations, conducting the analysis is a part of a variable renaming analysis while in other situation the analysis is a part of a variable misuse analysis.
    Type: Grant
    Filed: March 30, 2018
    Date of Patent: October 22, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Miltiadis Allamanis, Marc Manuel Johannes Brockschmidt
  • Publication number: 20190243617
    Abstract: Improving how a codebase, which may include source code, related databases, test files, code history, and/or changes, is drafted, edited, debugged, or otherwise developed. Machine learning is performed on a model codebase to establish a machine learning model. When a change to a codebase occurs, the machine learning model may be applied to evaluate that change. A change context providing context for this change is accessed. An analyzer then analyzes the change using the machine learning model and at least a part of the change context to generate an analysis result. Some information about the result is rendered. After rendering that information, a determination regarding how a user responded to the information is performed, and a subsequent analysis is then modified based on the user's response.
    Type: Application
    Filed: March 30, 2018
    Publication date: August 8, 2019
    Inventors: Joshua Bates STEVENS, John S. TILFORD, Guillermo Serrato CASTILLA, Srivatsn NARAYANAN, Simon CALVERT, Mark Alistair WILSON-THOMAS, Deborah CHEN, Miltiadis ALLAMANIS, Marc Manuel Johannes BROCKSCHMIDT, Kesavan SHANMUGAM
  • Publication number: 20190243622
    Abstract: Improving how a codebase is developed by analyzing the variables in the codebase' s source code. Learned characteristics of a codebase are derived by obtaining context for some of the source code's variables. This context represents semantics and/or patterns associated with those variables. Once the learned characteristics are derived, they are then modified, or rather tuned, by incorporating context from second source code. Particular context for a particular variable used within the second source code is then obtained. This particular context represents semantics and/or patterns associated with the particular variable. This particular context is then analyzed using the learned characteristics to generate zero, one or more anticipated variables. Later, a notification regarding these anticipated variables is displayed. In some situations, conducting the analysis is a part of a variable renaming analysis while in other situation the analysis is a part of a variable misuse analysis.
    Type: Application
    Filed: March 30, 2018
    Publication date: August 8, 2019
    Inventors: Miltiadis ALLAMANIS, Marc Manuel Johannes BROCKSCHMIDT
  • Patent number: 10042740
    Abstract: Techniques to identify idiomatic code in a code base are described. Embodiments of such techniques are configured with idiom information corresponding to idiomatic code representations of computer code of which each idiomatic code representation comprises information corresponding to a control structure and variable usage. These techniques are operative to compare the idiomatic code representations to computer code fragments in the code base and identify one or more code fragments matching at least one of the idiomatic code representations. These techniques may identify functional operators for replacing the code fragments in the code base. Other embodiments are described and claimed.
    Type: Grant
    Filed: December 4, 2015
    Date of Patent: August 7, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Christian Alma Bird, Mark Marron, Miltiadis Allamanis, Earl Theodore Barr
  • Publication number: 20170161177
    Abstract: Techniques to identify idiomatic code in a code base are described. Embodiments of such techniques are configured with idiom information corresponding to idiomatic code representations of computer code of which each idiomatic code representation comprises information corresponding to a control structure and variable usage. These techniques are operative to compare the idiomatic code representations to computer code fragments in the code base and identify one or more code fragments matching at least one of the idiomatic code representations. These techniques may identify functional operators for replacing the code fragments in the code base. Other embodiments are described and claimed.
    Type: Application
    Filed: December 4, 2015
    Publication date: June 8, 2017
    Applicant: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Christian Alma Bird, Mark Marron, Miltiadis Allamanis, Earl Theodore Barr