IP Library Granted Patent US 9,563,535
Granted Patent B2
US 9,563,535 · App. 14/579,564 · Granted Feb 7, 2017

Intermediate representation construction for static analysis

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,563,535
App. No.
14/579,564
Granted
Feb 7, 2017
Kind
B2
Abstract

The analysis of an intermediate representation of source or program code. An initial version of an initial representation of the source or program code is accessed and statically analyzed. For one or more portions of this initial version, the analysis component queries an analysis-time resolution component that provides supplemental intermediate representations corresponding to the portion. This supplemental intermediate representation provides further clarity regarding the portion, and is analyzed. If defects are found, they may be reported.

Claims (23)

1. A system comprising one or more computer processors and one or more computer storage devices having thereon computer-executable instructions that, when executed upon the one or more processors, cause the system to perform the following:

accessing an initial version of an intermediate representation of source or program code;

statically analyzing the initial version of the intermediate representation to identify defects in the source or program code;

determining, by statically analyzing the initial version of the intermediate representation, that operations which occur in at least one portion of the initial version of the intermediate representation cannot be inferred by the static analysis;

for the at least one portion of the initial version of the intermediate representation for which, based on the static analysis, operations cannot be inferred, performing:

querying an analysis-time resolution component for clarification of the at least one portion of the intermediate representation;

receiving a supplemental intermediate representation in response to the query; and

analyzing the supplemental representation for identification of defects; and

generating a list of defects comprising the defects identified by the static analysis of the initial version of the intermediate representation and the defects identified by analyzing the supplemental representation, wherein one or more defects identified by analyzing the supplemental representation are associated with code comprising a generic class that is parameterized by type.

2. The system in accordance with claim 1 , wherein one or more of the at least one portion of the initial version of the intermediate representation is a generic method or a method in a generic class parameterized by one or more types.

3. The system in accordance with claim 2 , wherein the supplemental intermediate representation is of a specific instantiation of the generic class.

4. The system in accordance with claim 1 , wherein the at least one portion of the initial version of the intermediate representation is a function call to an external component.

5. The system in accordance with claim 4 , wherein the supplemental intermediate representation is of an operation of the external component.

6. The system in accordance with claim 1 , wherein accessing an initial version of an intermediate representation of source or program code comprises:

accessing the source or program code; and

generating the initial version of the intermediate representation of the source or program code using the accessed source or program code.

7. The system in accordance with claim 6 , wherein accessing the source or program code and generating the initial version of the intermediate representation may be performed for multiple different languages of source or program code.

8. The system in accordance with claim 1 , wherein statically analyzing the initial version of the intermediate representation comprises:

a plurality of defect detection components evaluating the initial version of the intermediate representation, each of the plurality of defect detection components designed to detect a subset of one or more specific defects.

9. The system in accordance with claim 1 , wherein the computer-executable instructions are further structured such that, when executed by the one or more processors, the system is further caused to perform the following:

displaying the defect list.

10. The system in accordance with claim 1 , wherein the computer-executable instructions are further structured such that, when executed by the one or more processors, the system is further caused to perform the following:

providing a user interface through which the user may provide information to the analysis-time resolution component that the analysis-time resolution component may be used to generate a supplemental intermediate representation for one or more of the at least one portion of the initial version of the intermediate representation.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 035395/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: GRINGAUZE, ANNA; ROHDE, HENNING KORSHOLM
To: MICROSOFT CORPORATION
Reel/Frame 035254/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034819/0001 →