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: 20140068544Abstract: 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: ApplicationFiled: August 28, 2012Publication date: March 6, 2014Applicant: Microsoft CorporationInventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
-
Patent number: 8661415Abstract: 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: GrantFiled: June 6, 2011Date of Patent: February 25, 2014Assignee: Microsoft CorporationInventors: Michael C. Fanning, Timothy Scott Rice, Christopher Paul Schmich
-
Publication number: 20140053142Abstract: 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: ApplicationFiled: August 16, 2012Publication date: February 20, 2014Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Gregory Bernard Miskelly, Akrosh Gandhi, Timothy S. Rice, Tae Hyung Kim
-
Patent number: 8627287Abstract: 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: GrantFiled: November 29, 2007Date of Patent: January 7, 2014Assignee: Microsoft CorporationInventors: Michael C Fanning, Nachiappan Nagappan, Thomas J Ball, Sean Sandys
-
Publication number: 20130326490Abstract: 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: ApplicationFiled: June 5, 2012Publication date: December 5, 2013Applicant: MICROSOFT CORPORATIONInventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland
-
Patent number: 8595703Abstract: 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: GrantFiled: January 30, 2006Date of Patent: November 26, 2013Assignee: Microsoft CorporationInventors: Jeffrey van Gogh, Michael C. Fanning, Sean D. Sandys
-
Publication number: 20130311973Abstract: 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: ApplicationFiled: May 17, 2012Publication date: November 21, 2013Applicant: MICROSOFT CORPORATIONInventors: Timothy S. Rice, Akrosh Gandhi, Tae Hyung Kim, Gregory Bernard Miskelly, Michael C. Fanning, Andrew R. Sterland
-
Patent number: 8555250Abstract: 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: GrantFiled: May 31, 2011Date of Patent: October 8, 2013Assignee: Microsoft CorporationInventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
-
Publication number: 20130263102Abstract: 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: ApplicationFiled: March 27, 2012Publication date: October 3, 2013Applicant: MICROSOFT CORPORATIONInventors: Cenk Ergan, Michael C. Fanning
-
Publication number: 20130249917Abstract: 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: ApplicationFiled: March 26, 2012Publication date: September 26, 2013Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Cenk Ergan, Andrew R. Sterland
-
Publication number: 20130246417Abstract: 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: ApplicationFiled: March 13, 2012Publication date: September 19, 2013Applicant: MICROSOFT CORPORATIONInventors: Gaurav Seth, Michael C. Fanning, Jennifer Hamilton, Curtis Man
-
Patent number: 8539506Abstract: 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: GrantFiled: February 9, 2012Date of Patent: September 17, 2013Assignee: Microsoft CorporationInventors: Michael C. Fanning, Christopher M. H. Faucon, Andrew R. Sterland, Timothy S. Rice
-
Publication number: 20130212595Abstract: 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: ApplicationFiled: February 9, 2012Publication date: August 15, 2013Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Christopher M.H. Faucon, Andrew R. Sterland, Timothy S. Rice
-
Publication number: 20130159967Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Publication number: 20130159968Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: MICROSOFT CORPORATIONInventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
-
Publication number: 20130159978Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Publication number: 20130159976Abstract: 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: ApplicationFiled: December 16, 2011Publication date: June 20, 2013Applicant: Microsoft CorporationInventors: Charles P. Jazdzewski, Michael C. Fanning
-
Patent number: 8443338Abstract: 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: GrantFiled: October 8, 2008Date of Patent: May 14, 2013Assignee: Microsoft CorporationInventors: Krzysztof J. Cwalina, Michael C. Fanning, Brian M. Grunkemeyer, Brent E. Rector, Barend H. Venter
-
Publication number: 20120331375Abstract: 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: ApplicationFiled: June 23, 2011Publication date: December 27, 2012Applicant: Microsoft CorporationInventors: Michael C. Fanning, Matthew Hall, Gary Linscott, Evgeny Tvorun
-
Publication number: 20120331374Abstract: 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: ApplicationFiled: June 23, 2011Publication date: December 27, 2012Applicant: Microsoft CorporationInventors: Michael C. Fanning, Matthew Hall, Gary Linscott, Felix GTI Andrew, Kenneth A. Showman, Evgeny Tvorun