Patents by Inventor Michael C. Fanning

Michael C. Fanning 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: 9047100
    Abstract: The transformation of an abstract syntax tree of a dynamic language program at evaluation time in a manner that is helpful for evaluating the program. For instance, the abstract syntax tree may be altered such that metadata is attached to variables generated during execution. The tree might also be altered to force code to execute faster or more likely than would occur otherwise. This might occur so that the dynamic language program might be executed at authoring time up to a halt point that represents a point of interest to the author. Without transformation of the abstract syntax tree, the execution might have not proceeded to the halt point or might have taken a long time. Once at the halt point, the program state at the halt point may be evaluated, allowing the program to perform functions such as generating an available symbol set at the halt point.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: June 2, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Patent number: 9032378
    Abstract: The facilitated computation of an available symbol set at code locations in a dynamic language program, in which the program is executed up to a particular halt point for which an available symbol set is to be generated. At the halt point, a type of a value of a particular variable may be used in order to generate the available symbol set. However, at the halt point, the variable does not yet have a value of a useful type (e.g., null or undefined), which is possible in a dynamic language program. Rather than return an error, the principles described herein result in return of an available symbol set anyway. Specifically, the variable had previously been annotated with information representing accessed type information for the variable, even though the variable has not formally been defined. This annotated information may be used to generate the available symbol set.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: May 12, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Patent number: 9027000
    Abstract: A method to measure the performance of an Application Programming Interface (API) includes selecting a target API and tracking memory allocation for the functional calls of the selected API to generate a list of functions called by the API. The individual functions are then called within the API in isolation and timing and memory allocation data for each are collected and recorded. The recorded results are then bucketized according to a log base 2 method and made accessible by API users to indicate the performance of specific APIs.
    Type: Grant
    Filed: January 11, 2011
    Date of Patent: May 5, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nicholas Guerrera, Rico Mariani, Michael C. Fanning, Jan Stephen Gray
  • Publication number: 20150095885
    Abstract: Aspects of the subject matter described herein relate to searching. In aspects, a software package may be received and transformed into searchable data. Static and dynamic analysis may be performed on code and data included in the software package. A data structure is created that may index the code, metadata, indexable resources, and analysis artifacts associated with the software package. The data structure may be used to satisfy queries and the transformed data and analysis artifacts may be made available for viewing.
    Type: Application
    Filed: October 2, 2013
    Publication date: April 2, 2015
    Applicant: Microsoft Corporation
    Inventors: Scott M. Louvau, Michael C. Fanning, Christopher M. Faucon
  • Patent number: 8997069
    Abstract: API description techniques are described for consumption by dynamically-typed languages. In one or more implementations, machine-readable data is parsed to locate descriptions of one or more application programming interfaces (APIs). The descriptions of the one or more application programming interfaces are projected into an alternate form that is different than a form of the machine-readable data.
    Type: Grant
    Filed: April 13, 2011
    Date of Patent: March 31, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Michael C. Fanning, Ani Babaian, Jomo A. Fisher, Anson M. Horton, Lucas J. Hoban
  • Patent number: 8997055
    Abstract: Embodiments provided a formalized set of intermediate analysis contexts that are relevant for analysis checks of target code. Such intermediate analysis context may include, but are not limited to, the development phase of targeted code, the type or state of the targeted code, a source manipulating the targeted code, a purpose for the targeted code, or other development or runtime requirements. Accordingly, embodiments dynamically identify a current analysis context under which targeted code is being developed and can then execute rules based on knowledge of what contexts the rule(s) may apply. More specifically, analysis rules can describe (e.g., via metadata) those context conditions under which a rule can run. Based on such description and the current context, those rules that have been configured to apply to such context conditions can be executed.
    Type: Grant
    Filed: November 19, 2013
    Date of Patent: March 31, 2015
    Assignee: Microsoft Corporation
    Inventors: Jeffrey van Gogh, Michael C. Fanning, Sean D. Sandys
  • Patent number: 8954939
    Abstract: Concepts and technologies are described herein for extending the behavior of a software development tool. An extension can be accessed and consumed by a software development tool to configure the software development tool to perform an operation in an extended mode. In one example, an extension can extend a compiler based on the input source code. In one configuration, the compiler extension can provide a compiler with one or more runtime semantics of various source code elements for a particular programming language. The compiler can access an extensions list to determine if the compiler is to perform a compilation operation on a particular source code element or logical unit in an extended mode.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: February 10, 2015
    Assignee: Microsoft Corporation
    Inventors: Frederico A. Mameri, Michael C. Fanning
  • Patent number: 8924437
    Abstract: A script engine for a dynamic language can collect memory allocation information for dynamic objects created by the scripting engine and for dynamic objects created by the script engine host. A native interface can be exposed to a client comprising a software development tool. The software development tool can be a third-party tool. In response to a query, the script engine can take a snapshot of a garbage collector heap and return an object record for each dynamic object in the heap. The object information can include memory allocation information, object type and other information. Multiple snapshots can be taken and the delta between snapshots can be determined and sent to a requestor.
    Type: Grant
    Filed: March 13, 2012
    Date of Patent: December 30, 2014
    Assignee: Microsoft Corporation
    Inventors: Gaurav Seth, Michael C. Fanning, Jennifer Hamilton, Curtis Man
  • Publication number: 20140372988
    Abstract: The use of a static analysis for configuring a follow-on dynamic analysis for the evaluation of program code is provided. A request may be received for configuring a static analysis session for the evaluation of the program code. The static analysis may be executed and an output may be produced therefrom. The output may be analyzed to determine whether a dynamic analysis is needed for resolving code ambiguities in the program code. If it determined that the dynamic analysis is needed, then the dynamic analysis of the program code is initiated.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation, Christopher Michael Henry Faucon, Alexander Robin Gordon Lucas
  • Patent number: 8914776
    Abstract: Aspects of the subject matter described herein relate to assisting development tools. In aspects, statements that influence runtime behavior may be inserted into code of a program. For example, a statement inserted into a function may set a property of a runtime object to indicate that a debugger is to be notified for exceptions that are encountered within the scope of the function. When a runtime environment encounters an exception, the runtime environment may determine whether the property applies to the currently-executing scope. If so, the runtime environment may notify or not notify a development tool of the exception based on the value of the property.
    Type: Grant
    Filed: May 17, 2012
    Date of Patent: December 16, 2014
    Assignee: Microsoft Corporation
    Inventors: Timothy S. Rice, Akrosh Gandhi, Tae Hyung Kim, Gregory Bernard Miskelly, Michael C. Fanning, Andrew R. Sterland
  • Publication number: 20140358961
    Abstract: Aspects of the subject matter described herein relate to grid queries. In aspects, a client sends search criteria that represent two or more dimensions to a service. The service obtains results that satisfy the search criteria and performs intersection operations to populate a data grid. The data grid is then returned to the client for output on an output device of the client. The client may provide a user interface that allows quick updating of the search criteria to obtain a new data grid.
    Type: Application
    Filed: June 4, 2013
    Publication date: December 4, 2014
    Inventors: Scott M. Louvau, Michael C. Fanning, Christopher M. Faucon
  • Patent number: 8869106
    Abstract: A language service provider framework that generates an application context of a dynamic language program being authored. The application context includes a description of the dynamic language application being authored, one or more specific locations within the program, and runtime environment information. A language service provider port component holds one or more language service providers. Each language service provider may receive the application context and generate a set of available symbols corresponding to each of at least one of the identified one or more specific locations. A management component receives the application context from the application context generation component, provides the application context the language service provider, and correspondingly receives the available symbol set from the language service provider.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
  • Publication number: 20140282427
    Abstract: A method for diagnosing computer readable instructions related to transfers of control is disclosed. A state transition of a unit of execution within a logical operation is logged during runtime of the computer readable instructions. Diagnostic information of the logical operation is associated with the state transition. The state transition and associated diagnostic information is provided for retrieval at a selected point in the computer readable instructions.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Felix Gerard Torquil Ifor Andrew, Daniel J. Moseley, Simon Calvert, Andrew R. Sterland, Timothy Rice, Jeffrey T. Fisher, Robert A. Paveza, Taylor C. Woll, Gregg Miskelly, Harold L. Pierson, III, Christopher Edmonds, Elliot H. Omiya, Karthik Vivek Nadig, Francisco Javier Wong, Zhaochuan Gao, Andriy Stasyuk
  • Publication number: 20140283096
    Abstract: A request that includes an indication of an execution context and data that represents executable code is obtained. An analysis of the data is initiated based on generating a first templatized representation of the executable code. A list of clearance indicators that indicate a blocking status associated with respective forms of templatized representations is accessed. A workflow policy is determined based on the accessing of the list of clearance indicators. The list of clearance indicators is updated, based on a result of the analysis of the data.
    Type: Application
    Filed: March 15, 2013
    Publication date: September 18, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Bala Neerumalla, Alain Comeau, Johann Rehberger, Graham Calladine, Wing Kwong Wan, George Raymond Derryberry, JR., Michael C. Fanning, David A. Ross, Mark Cartwright
  • Patent number: 8789018
    Abstract: Creating metadata for dynamic code in a descriptive metadata language. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Metadata about the body of the dynamic language source code is provided, with the source code, in a specific metadata format, to a user.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: July 22, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Steven Edward Lucco, Frederico A. Mameri
  • Publication number: 20140189662
    Abstract: Concepts and technologies are described herein for extending the behavior of a software development tool. An extension can be accessed and consumed by a software development tool to configure the software development tool to perform an operation in an extended mode. In one example, an extension can extend a compiler based on the input source code. In one configuration, the compiler extension can provide a compiler with one or more runtime semantics of various source code elements for a particular programming language. The compiler can access an extensions list to determine if the compiler is to perform a compilation operation on a particular source code element or logical unit in an extended mode.
    Type: Application
    Filed: December 31, 2012
    Publication date: July 3, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Frederico A. Mameri, Michael C. Fanning
  • Publication number: 20140181792
    Abstract: A deployment package descriptor may be obtained. One or more application files that include application content in a plurality of different data formats may be obtained. An analysis of the application content included in the obtained one or more application files may be initiated, based on a plurality of different data formats and descriptive information associated with the obtained application files, the descriptive information included in the obtained deployment package descriptor.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Frederico Mameri, Christopher M.H. Faucon
  • Publication number: 20140181592
    Abstract: A method for diagnosing declarative source elements in an application, such as in debugging markup source elements or visual elements in an application, is disclosed. Diagnosis information is associated with an object source of a visual element. The diagnosis information is provided for the visual element during the runtime of the application.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Felix Gerard Torquil Ifor Andrew, Ahmad Khalifa Eesa Ahmad, Michael C. Fanning
  • Patent number: 8752035
    Abstract: Transforming dynamic code. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Using the identifier information and augmented knowledge, metadata is generated about the body of the dynamic language source code. The generated metadata is represented as a symbol table. Using the symbol table, the body of dynamic language source code is transformed.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
  • Patent number: 8713532
    Abstract: Various technologies and techniques are disclosed for providing a code analysis debugger. A code analysis process is performed to identify possible program defects that are present in particular source code. The results of the code analysis are stored in a results file in a structured format. The structured format contains sections that describe details about the one or more portions of source code that have been identified as possibly having the program defects. The analysis results are retrieved for display. A debugger-like feature allows a user to review a representation of the program defects identified during the code analysis. The debugger-like feature has a graphical user interface that can display at least some of the possible program defects in a call stack for further review.
    Type: Grant
    Filed: January 19, 2007
    Date of Patent: April 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Jeffrey van Gogh, Michael C. Fanning