Static Analysis Intermediate Representation Clarification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static analysis tools face challenges in accurately analyzing complex or missing intermediate representations of software programs, leading to false defect detection or non-detection of real issues, especially when dealing with external components like .Net or STL data structures, due to over-approximation and complexity.

Innovation Solution

An analysis-time resolution component is introduced to provide supplemental intermediate representations, clarifying ambiguous portions of the program code, allowing for more precise analysis by querying and generating specific instantiations of generic functions and external function calls, thereby reducing noise and improving defect detection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If path sensitive dataflow analysis is performed exhaustively on intermediate representation, then measurement precision of defect detection is improved, but device complexity of analysis system increases

Engineering Contradiction:
Improvedefect detection accuracyVSAvoidanalysis system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the analysis system into distinct components: an analysis component that performs path sensitive dataflow analysis, and a separate analysis-time resolution component that handles intermediate representation generation and clarification. This segmentation allows the analysis component to focus on precise defect detection while the resolution component manages the complexity of intermediate representation handling.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an analysis-time resolution component as an intermediary between the intermediate representation generation and the analysis component. This intermediary resolves ambiguities and provides clarified intermediate representations, enabling the analysis component to achieve high measurement precision without being burdened by the complexity of intermediate representation processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If intermediate representation is made generic and parameterized, then adaptability of analysis tool is improved, but manufacturing precision of analysis results deteriorates

Engineering Contradiction:
Improveanalysis tool adaptabilityVSAvoidanalysis result precision
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent implements dynamic resolution of generic intermediate representations at analysis time. The analysis-time resolution component receives generic parameterized intermediate representations and dynamically instantiates them with appropriate type information based on the specific analysis context. This allows the system to maintain adaptability through generic representations while achieving precision through context-specific instantiation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes parameters of generic intermediate representations at analysis time based on the specific program being analyzed. The analysis-time resolution component modifies type parameters and other generic parameters to match the concrete instantiation required for accurate analysis, thereby transforming adaptable generic representations into precise analysis-specific representations.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If external components are approximated away in analysis, then device complexity is reduced, but object-generated harmful factors increase due to false defects

Engineering Contradiction:
Improveanalysis system complexityVSAvoidfalse defect noise
Core Design Contradiction:
Device complexityVSObject-generated harmful factors

Solution Approach 1:

The patent performs preliminary action by having the analysis-time resolution component generate and clarify intermediate representations for external components before the analysis component processes them. This preliminary clarification ensures that external components like .Net or STL data structures are represented with sufficient detail to avoid false defect detection, while still managing complexity through systematic preprocessing.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8930913B2Intermediate representation construction for static analysis
Publication Date: 2015.01.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8930913B2 patent drawing
  • US8930913B2 patent drawing
  • US8930913B2 patent drawing

AI summary

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.