Data Type Visualization for Code Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques face difficulties in determining and presenting data type information, especially for multiple variables across large codebases and unnamed variables, making it challenging to efficiently allocate memory and optimize data types.

Innovation Solution

A visualization system is developed that allows users to interactively analyze and manipulate data types by simulating code execution, providing histograms and relationship diagrams to determine significant digits, dynamic ranges, and correlations, enabling efficient data type assignments and resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If conventional techniques are used to determine data type information, then the analysis can be performed, but the difficulty increases significantly when dealing with multiple variables across large codebases and unnamed variables

Engineering Contradiction:
Improvedifficulty of determining data type informationVSAvoidcomplexity of analyzing multiple variables across large codebases
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The patent segments the codebase into manageable units by associating data type information with specific variables and expressions. It breaks down the complex task of analyzing entire codebases into smaller, isolatable components, allowing systematic processing of data types across large codebases without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary visualization interface that mediates between the complex codebase analysis and the user. This intermediary layer presents processed data type information through histograms and relationship diagrams, simplifying the interaction required to analyze multiple variables across large codebases.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If data type information is presented in conventional formats, then the information is available, but it becomes challenging to efficiently allocate memory and optimize data types

Engineering Contradiction:
Improveefficiency of memory allocationVSAvoidease of optimizing data types
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent uses visual encoding with different colors and patterns in histograms to represent various data type characteristics. This visual differentiation makes it easier to identify optimization opportunities and allocate memory efficiently by presenting information in an intuitively operable format.

Inventive Principle:
Principle #32Color changes

Solution Approach 2:

The patent provides feedback mechanisms through the visualization interface that show the impact of data type assignments on memory usage and performance. This feedback loop enables users to iteratively optimize data types by observing the visual representation of memory allocation efficiency.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If detailed data type analysis is performed on all variables, then comprehensive information is obtained, but the computational resources and time required increase significantly

Engineering Contradiction:
Improveprecision of data type determinationVSAvoidtime required for comprehensive data type analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies partial analysis by focusing data type determination on variables and expressions that are most relevant to the analysis, rather than uniformly processing all variables. This selective approach maintains sufficient measurement precision for optimization while reducing the time required for comprehensive analysis.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary processing and categorization of variables to identify which require detailed analysis and which can be processed more lightly. This preliminary action filters and prioritizes variables, reducing the overall time required for comprehensive data type analysis while maintaining necessary precision.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If unnamed variables are excluded from analysis, then the analysis remains manageable, but the completeness of data type information is reduced

Engineering Contradiction:
Improvecomplexity of handling unnamed variablesVSAvoidloss of data type information for unnamed variables
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The patent creates a virtual representation or copy of unnamed variables in the visualization interface, allowing them to be analyzed and displayed with the same treatment as named variables. This copying approach maintains information completeness for unnamed variables while managing complexity through the intermediary visualization layer.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10095487B1Data type visualization
Publication Date: 2018.10.09 MATHWORKS INC
  • US10095487B1 patent drawing
  • US10095487B1 patent drawing
  • US10095487B1 patent drawing

AI summary

A device may obtain program code, determine variables based on the program code, execute or analyze the program code, and determine values of the variables based on the executing or analyzing. The device may determine a range for each variable based on positions of at least one significant digit for the values. The range may be determined based on a count of a quantity of occurrences of the at least one significant digit for the values. The device may determine relationships between the variables based on the executing or analyzing, and may determine one or more effects on the range for the variables based on the relationships between the variables. The device may generate a visualization that presents the range for the variables, the relationships between the variables, and the one or more effects on the range for the variables, and may provide the visualization for display.