Compiler Automatic Abstract Data Type Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The choice of implementation for abstract data types in programming can significantly impact performance, with no one-size-fits-all solution suitable for every use case, leading to potential poor performance if not optimized correctly.

Innovation Solution

A compiler automatically selects an implementation for abstract data types based on the operations performed within a program, using implementation-selection heuristics that analyze and optimize the pattern of operations to choose the most suitable data structure, such as min-heap or dynamic array, and may transform code to exploit the selected implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single implementation of abstract data type is used for all cases, then device complexity is reduced, but program performance deteriorates

Engineering Contradiction:
Improveimplementation complexityVSAvoidprogram performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic selection of abstract data type implementations based on runtime characteristics and usage patterns. The system monitors operation frequencies and data access patterns, then dynamically switches between different implementations (e.g., array-based vs. linked-list-based) to optimize performance for each specific usage scenario rather than committing to a single static implementation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes implementation parameters based on detected usage patterns. By analyzing operation frequencies and data characteristics, the system adjusts which implementation variant is used, effectively changing the structural parameters of the abstract data type to match the actual workload requirements, thereby resolving the contradiction between simplicity and performance.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If programmer manually selects implementation, then program performance is optimized, but ease of operation deteriorates

Engineering Contradiction:
Improveprogram performanceVSAvoidprogrammer effort
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements a self-service mechanism where the abstract data type automatically selects its own optimal implementation based on monitored usage patterns. The system performs self-analysis of operation frequencies and data access characteristics, then autonomously determines the best implementation variant without requiring programmer intervention, thus maintaining high performance while eliminating the burden of manual selection.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent incorporates feedback loops that monitor the actual usage of abstract data types at runtime. By collecting data on operation patterns and performance metrics, the system uses this feedback to automatically adjust implementation choices, replacing the need for manual programmer decisions with an automated feedback-driven selection process that maintains optimality without increasing operational complexity.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If compiler automatically selects implementation, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improveprogrammer effortVSAvoidcompiler complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent performs preliminary analysis during compilation by examining operation frequencies and data access patterns in the source code. The compiler pre-determines the optimal implementation variant based on static analysis of usage patterns, generating optimized code before runtime. This preliminary action reduces the need for complex runtime decision-making mechanisms while still achieving automated optimization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10228920B2Automatic selection of an abstract data type
Publication Date: 2019.03.12 ORACLE INT CORP
  • US10228920B2 patent drawing
  • US10228920B2 patent drawing
  • US10228920B2 patent drawing

AI summary

An implementation of an abstract data type is automatically selected by a compiler of high-level language source code. The compiler chooses an implementation for each instance of an abstract data type in a program based on operations performed in the instance within the program. The compiler rewrites and compiles the high-level language source code in response to selecting the implementation.