Patents by Inventor C. Fanning

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

  • Publication number: 20140068544
    Abstract: Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. A metadata consumer may request the metadata. A metadata identifier of the metadata requested may be provided implicitly or explicitly. A parameter that indicates how to obtain the metadata may also be provided. In response, the metadata may be obtained and provided. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.
    Type: Application
    Filed: August 28, 2012
    Publication date: March 6, 2014
    Applicant: Microsoft Corporation
    Inventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
  • Patent number: 8661415
    Abstract: Performing tracing functionality. A method includes collecting runtime information that describes the execution of code. The collected runtime information is correlated to specific lines of code and one or more paths taken to get to specific lines of code. User input is received defining a view preference. A code visualization is provided based on the user input defining a view preference and the act of correlating the collected runtime information to specific lines of code and a path taken to get to the line of code.
    Type: Grant
    Filed: June 6, 2011
    Date of Patent: February 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Timothy Scott Rice, Christopher Paul Schmich
  • Publication number: 20140053142
    Abstract: Aspects of the subject matter described herein relate to imperative attribution. In aspects, metadata of a managed runtime environment may be set by imperative statements included in code of a program executing in the managed runtime environment. The metadata may be associated with lookup data that identifies the metadata. The lookup data may be formed from an identifier supplied by an imperative statement and an identifier of a logical element which may be explicitly or implicitly supplied. The metadata may be computed at parse time, run time, or another time and may be computed based on state available to a managed runtime environment at the time the metadata is computed.
    Type: Application
    Filed: August 16, 2012
    Publication date: February 20, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
  • Patent number: 8627287
    Abstract: An exemplary method includes receiving source code having a plurality of code segments, providing a desired level of quality for the source code, analyzing the source code to assign a complexity measure to each of the plurality of code segments and assigning a level of code coverage to each of the plurality of code segments based at least in part on the desired level of quality and the complexity measures. An exemplary system prioritizes quality improvements to source code based, in part, on a quality assessment. Such a system can improve code quality by assigning higher test coverage levels to modules with higher complexity.
    Type: Grant
    Filed: November 29, 2007
    Date of Patent: January 7, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C Fanning, Nachiappan Nagappan, Thomas J Ball, Sean Sandys
  • Publication number: 20130326490
    Abstract: Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines.
    Type: Application
    Filed: June 5, 2012
    Publication date: December 5, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland
  • Patent number: 8595703
    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: January 30, 2006
    Date of Patent: November 26, 2013
    Assignee: Microsoft Corporation
    Inventors: Jeffrey van Gogh, Michael C. Fanning, Sean D. Sandys
  • Publication number: 20130311973
    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: Application
    Filed: May 17, 2012
    Publication date: November 21, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Timothy S. Rice, Akrosh Gandhi, Tae Hyung Kim, Gregory Bernard Miskelly, Michael C. Fanning, Andrew R. Sterland
  • Patent number: 8555250
    Abstract: Analyzing dynamic source code. A method includes accessing a specific metadata format data structure. The data structure was created by 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. The metadata format data structure is parsed to compute metrics about the metadata format data structure. The metrics about the metadata format data structure are provided to a user.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: October 8, 2013
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
  • Publication number: 20130263102
    Abstract: Profile data can be ascribed to groups as a function of an organizational scheme that defines groups and relationships between groups. The groups can be abstractions over profile data that are meaningful for computer program analysis. Subsequently, grouped data can be disseminated, queried, and visualized in numerous ways to further aid program analysis.
    Type: Application
    Filed: March 27, 2012
    Publication date: October 3, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Cenk Ergan, Michael C. Fanning
  • Publication number: 20130249917
    Abstract: Profile data is visualized in a number of ways to visually communicate program performance issues and facilitate analysis thereof. In one instance, a plurality of correlated visualizations can be presented that provide different types of views of program profile data. Further, logically grouped profile data can be presented to enable meaningful analysis of program execution. Visualizations can also reflect the state of profile data with respect to designated performance goals, and mechanisms are provided to enable recording and playback profile data, among other things.
    Type: Application
    Filed: March 26, 2012
    Publication date: September 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Cenk Ergan, Andrew R. Sterland
  • Publication number: 20130246417
    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: Application
    Filed: March 13, 2012
    Publication date: September 19, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Gaurav Seth, Michael C. Fanning, Jennifer Hamilton, Curtis Man
  • Patent number: 8539506
    Abstract: Techniques are described herein that are capable of dynamically injecting code into a running process. For instance, the techniques are capable of causing arbitrary code to be activated in the process while the process is running in response to receipt of a request for dynamic execution of the arbitrary code from outside the process while the process is running.
    Type: Grant
    Filed: February 9, 2012
    Date of Patent: September 17, 2013
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Christopher M. H. Faucon, Andrew R. Sterland, Timothy S. Rice
  • Publication number: 20130212595
    Abstract: Techniques are described herein that are capable of dynamically injecting code into a running process. For instance, the techniques are capable of causing arbitrary code to be activated in the process while the process is running in response to receipt of a request for dynamic execution of the arbitrary code from outside the process while the process is running.
    Type: Application
    Filed: February 9, 2012
    Publication date: August 15, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Christopher M.H. Faucon, Andrew R. Sterland, Timothy S. Rice
  • Publication number: 20130159967
    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 returns an arbitrary symbol set anyway. Specifically, the variable had previously been annotated with information represented 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: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Publication number: 20130159968
    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: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
  • Publication number: 20130159978
    Abstract: The execution of a dynamic code segment sequence that includes at least two code segments in sequence. The first code segment is first executed and the corresponding state of the environment is captured. The second code segment is then executed. When the second code segment is later re-executed, the first code segment is not re-executed again. Rather, the environmental state is set to be the captured state that existed when the first code segment originally executed. Then, the second code segment may be executed without spending the resources required to re-run the first code segment. This may be employed at authoring time, or after deployment time.
    Type: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Publication number: 20130159976
    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: Application
    Filed: December 16, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning
  • Patent number: 8443338
    Abstract: An assembly aggregate comprising a virtual, logical view of an arbitrarily defined collection of intermediate code and metadata can be authored, factored, accessed, modified, and distributed. Multiple physical containers of assembly information can be aggregated to create a single logical assembly called an assembly aggregate. An assembly can thus be redefined as a logical view against (or projection over) the assembly aggregate. Such an assembly can be targeted to the requester: that is, an assembly can be redefined according to tool and/or execution context rather than conforming to explicit or implicit requirements enforced by the runtime.
    Type: Grant
    Filed: October 8, 2008
    Date of Patent: May 14, 2013
    Assignee: Microsoft Corporation
    Inventors: Krzysztof J. Cwalina, Michael C. Fanning, Brian M. Grunkemeyer, Brent E. Rector, Barend H. Venter
  • Publication number: 20120331375
    Abstract: A method includes parsing a text source document to construct a document node tree such that the document node tree includes text offsets indicating the location of the text within the text source document corresponding to each node of the document node tree. The method includes constructing, from the document node tree, a Document Object Model (DOM) and a view node tree that represents the DOM. The constructing of the view node tree includes mapping the view node tree to the document node tree. The method includes providing a running representation of the DOM and one of tracking a modification to the DOM to provide first change information and tracking a modification to the text source document to provide second change information.
    Type: Application
    Filed: June 23, 2011
    Publication date: December 27, 2012
    Applicant: Microsoft Corporation
    Inventors: Michael C. Fanning, Matthew Hall, Gary Linscott, Evgeny Tvorun
  • Publication number: 20120331374
    Abstract: A method includes parsing a text source document to construct a document node tree such that the document node tree includes text offsets indicating the location of the text within the text source document corresponding to each node of the document node tree. The method includes constructing, from the document node tree, a Document Object Model (DOM) and a view node tree that represents the DOM. The constructing of the view node tree includes mapping the view node tree to the document node tree. The method includes providing a running representation of the DOM such that DOM elements of the DOM are linked to the text within the text source document corresponding to the DOM elements via the view node tree and the document node tree.
    Type: Application
    Filed: June 23, 2011
    Publication date: December 27, 2012
    Applicant: Microsoft Corporation
    Inventors: Michael C. Fanning, Matthew Hall, Gary Linscott, Felix GTI Andrew, Kenneth A. Showman, Evgeny Tvorun