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).
-
Publication number: 20120311533Abstract: Enhancing dynamic code. A 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 about the body of the dynamic language source code is generated. The generated metadata is represented as a symbol table. The body of dynamic language source code is visually enhanced based on the symbol table structure.Type: ApplicationFiled: May 31, 2011Publication date: December 6, 2012Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Randy S. Kimmerly, Steven Edward Lucco, Andrew Sterland
-
Publication number: 20120311540Abstract: 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: ApplicationFiled: June 6, 2011Publication date: December 6, 2012Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Timothy Scott Rice, Christopher Paul Schmich
-
Publication number: 20120311535Abstract: 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: ApplicationFiled: May 31, 2011Publication date: December 6, 2012Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
-
Publication number: 20120311546Abstract: 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: ApplicationFiled: May 31, 2011Publication date: December 6, 2012Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
-
Publication number: 20120266141Abstract: 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: ApplicationFiled: April 13, 2011Publication date: October 18, 2012Applicant: MICROSOFT CORPORATIONInventors: Michael C. Fanning, Ani Babaian, Jomo A. Fisher, Anson M. Horton, Lucas J. Hoban
-
Patent number: 7975257Abstract: Static and dynamic code analyses are seamlessly, iteratively performed. A software analysis tool integrates the results of dynamic and static analysis and iteratively utilizes results from a previous analysis, or analyses, to augment a current analysis. During a debugging process, information collected at runtime is integrated with static code analysis results. This information is generated and stored as part of the results of the testing and debugging processes. The stored information is subsequently utilized to provide improved analysis results. The software analysis tool eliminates the need for software developers to separately perform static analysis and dynamic analysis.Type: GrantFiled: June 13, 2006Date of Patent: July 5, 2011Assignee: Microsoft CorporationInventors: Michael C. Fanning, Nicholas Guerrera
-
Publication number: 20110113405Abstract: 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: ApplicationFiled: January 11, 2011Publication date: May 12, 2011Applicant: Microsoft CorporationInventors: Nicholas Guerrera, Rico Mariani, Michael C. Fanning, Jan Stephen Gray
-
Patent number: 7895579Abstract: 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: GrantFiled: June 16, 2006Date of Patent: February 22, 2011Assignee: Microsoft CorporationInventors: Nicholas Guerrera, Rico Mariani, Michael C. Fanning, Jan Stephen Gray
-
Patent number: 7873949Abstract: Upon accessing binary that was generated by a compiler using corresponding source code, a potential reportable problem in the binary is identified. The binary includes a compiler transformed indication that the potential reportable problem is to be suppressed at least under some circumstances. The transformed indication is generated by the compiler using a corresponding untransformed indication in the corresponding source code. The transformed indication is then used to decide that the potential reportable problem should not be reported. Thus, artifacts within the source code itself may ultimately direct what problems are not to be reported on when the corresponding binary is analyzed after the compile phase.Type: GrantFiled: February 8, 2006Date of Patent: January 18, 2011Assignee: Microsoft CorporationInventors: Sean David Sandys, Jeffrey van Gogh, Michael C. Fanning, Nicholas P. Guerrera
-
Patent number: 7836433Abstract: The present invention extends to methods, systems, and computer program products for analyzing binary code. Binary code is received. Code analysis rules indicative of a query related to the functionality of the binary code are received. The query is implemented in analysis code configured to determine results of the query. It is determined if valid cached results for the query are cached in a results store. If not, the analysis code is invoked to determine the results for the query and the results are cached. Accordingly, when the query is received in the future, the results can be accessed from the results store without having to invoke the analysis code to determine the results. If so, the cached results are retrieved so as to avoid further invocation of the analysis code. The results are returned.Type: GrantFiled: January 26, 2006Date of Patent: November 16, 2010Assignee: Microsoft CorporationInventors: Michael C. Fanning, Nicholas P. Guerrera, Jeffrey van Gogh
-
Publication number: 20100211865Abstract: Many web developers spend significant time investigating and/or mitigating inconsistencies that may present when a web page is rendered across different browsers. Most websites are developed for multiple versions of one or more web browser and/or for multiple versions of one or more platforms. As provided herein, a cross-browser page visualization may be generated. A visualization may comprise a Document Object Model (DOM) associated with a screenshot image of a web page rendered within an available browser. Multiple visualizations may be created using locally installed browsers and/or remote browsers. The visualizations provide high-fidelity browser renderings coupled with underlying styling and/or DOM information that may be used to interrogate and/or annotate the screenshot image, thus allowing a web page to be developed that can be desirably rendered on different browsers, different operating systems and/or on different versions of the same.Type: ApplicationFiled: February 19, 2009Publication date: August 19, 2010Applicant: Microsoft CorporationInventors: Michael C. Fanning, Boris Feldman, Steven I. Guttman, Tyler G. Simpson, Erik A. Saltwell
-
Publication number: 20100211893Abstract: Web developers devote significant time and resources to investigating and mitigating inconsistencies that may present when a web page is rendered across different browsers. As provided herein, a cross-browser page visualization may be presented, which comprises one or more screenshot images of a web page rendered with different browsers, coupled with underlying styling and/or Document Object Model representation data. This allows for powerful page visualization and/or feature analysis. For example, rendering inconsistencies may be easily (or even automatically) detected and/or corrected.Type: ApplicationFiled: February 19, 2009Publication date: August 19, 2010Applicant: Microsoft CorporationInventors: Michael C. Fanning, Boris Feldman, Steven I. Guttman, Tyler G. Simpson, Erik A. Saltwell
-
Publication number: 20100088669Abstract: 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: ApplicationFiled: October 8, 2008Publication date: April 8, 2010Applicant: Microsoft CorporationInventors: Krzysztof J. Cwalina, Michael C. Fanning, Brian M. Grunkemever, Brent E. Rector, Barend H. Venter
-
Publication number: 20100083238Abstract: One or more embodiments, described herein, are directed towards a technology for performing transformations and/or modifications to managed byte code. In order to perform the transformations and/or modifications, a mutable programmable representation (MPR) is laid out. A programmer then performs an arbitrary adjustment using the MPR.Type: ApplicationFiled: September 30, 2008Publication date: April 1, 2010Applicant: Microsoft CorporationInventors: Michael Barnett, Michael C. Fanning, Brian M. Grunkemeyer, Barend H. Venter
-
Publication number: 20090144698Abstract: 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: ApplicationFiled: November 29, 2007Publication date: June 4, 2009Applicant: Microsoft CorporationInventors: Michael C. Fanning, Nachiappan Nagappan, Thomas J. Ball, Sean Sandys
-
Publication number: 20080320457Abstract: Metrics may be determined from intermediate computer code by reading and analyzing an entire application using intermediate code, including any linked portions. The metrics may include cyclomatic complexity, estimated or actual number of lines of code, depth of inheritance, type coupling, and other metrics. The metrics may be combined into a quantifiable metric for the code.Type: ApplicationFiled: June 19, 2007Publication date: December 25, 2008Applicant: MICROSOFT CORPORATIONInventors: Todd King, Michael C. Fanning, Nachiappan Nagappan, Marcelo Birnbach
-
Publication number: 20080209401Abstract: Various technologies and techniques are disclosed for integrating debugging with decompilation. A debugger integrated with a decompiler is provided. The system determines a need to debug at least a portion of an application for which necessary debug information is not available. A decompile process is performed to decompile a binary into a decompiled source code in a particular language. A symbol file is generated that maps code sequence execution points to the decompiled source code. The decompiled source code and the symbol file are provided to the debugger. The debugging then continues using the decompiled source code. The user is able to debug applications when source code and symbol files are not available, and/or when the user prefers to debug in a different language than the language of the available source code.Type: ApplicationFiled: February 22, 2007Publication date: August 28, 2008Applicant: Microsoft CorporationInventors: Michael C. Fanning, Steven J. Steiner
-
Publication number: 20080178155Abstract: 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: ApplicationFiled: January 19, 2007Publication date: July 24, 2008Applicant: Microsoft CorporationInventors: Jeffrey van Gogh, Michael C. Fanning
-
Publication number: 20070294673Abstract: 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: ApplicationFiled: June 16, 2006Publication date: December 20, 2007Applicant: Microsoft CorporationInventors: Nicholas Guerrera, Rico Mariani, Michael C. Fanning, Jan Stephen Gray
-
Publication number: 20070288899Abstract: Static and dynamic code analyses are seamlessly, iteratively performed. A software analysis tool integrates the results of dynamic and static analysis and iteratively utilizes results from a previous analysis, or analyses, to augment a current analysis. During a debugging process, information collected at runtime is integrated with static code analysis results. This information is generated and stored as part of the results of the testing and debugging processes. The stored information is subsequently utilized to provide improved analysis results. The software analysis tool eliminates the need for software developers to separately perform static analysis and dynamic analysis.Type: ApplicationFiled: June 13, 2006Publication date: December 13, 2007Applicant: Microsoft CorporationInventors: Michael C. Fanning, Nicholas Guerrera