Identifier Map for Renamed Programming Constructs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming environments face disruptions and errors when code or data references renamed programming constructs, leading to workflow interruptions and the need for extensive code revisions, which are time-consuming and costly, especially in large code bases.

Innovation Solution

The implementation of a system that detects and maps non-canonical identifiers to canonical identifiers, generating an identifier map that allows code execution without errors, even if the code references outdated identifiers, by parsing mapping information stored in source or object code, and using this map to resolve references at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code references renamed programming constructs using outdated identifiers, then code execution fails with errors, but updating all code references to use new identifiers is time-consuming and costly

Engineering Contradiction:
Improvecode execution reliabilityVSAvoidtime for code revision
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an identifier map as an intermediary data structure that stores mappings between non-canonical (old) identifiers and canonical (new) identifiers. When code execution encounters an outdated identifier, the system queries this map to resolve it to the current identifier, thereby maintaining code execution reliability without requiring manual code updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-computing and storing identifier mappings in the identifier map during system initialization or when renamings occur. This preliminary preparation enables automatic resolution of outdated identifiers during code execution, eliminating the need for time-consuming manual code revisions.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the system maintains strict identifier matching, then code execution is precise, but any renaming causes workflow disruption and errors

Engineering Contradiction:
Improveidentifier matching precisionVSAvoidworkflow continuity
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The identifier map serves as a mediator between strict identifier matching requirements and renaming needs. It preserves precise matching by canonicalizing identifiers while maintaining ease of operation by automatically translating outdated identifiers, thus preventing workflow disruption without sacrificing matching precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the parameter of identifier resolution from direct matching to mapped resolution. By transforming the identifier lookup process to use the identifier map, the system maintains precise identifier matching while adapting to renaming changes, ensuring workflow continuity.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If the system supports multiple identifier versions, then backward and forward compatibility is achieved, but system complexity increases

Engineering Contradiction:
Improvecompatibility supportVSAvoidsystem structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The identifier map acts as a centralized intermediary that manages multiple identifier versions. Instead of duplicating compatibility logic throughout the system, all identifier resolution passes through this single map, achieving backward and forward compatibility while minimizing system complexity through centralized management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The identifier map provides universal support for multiple identifier versions and renaming scenarios through a single data structure. This multi-functional approach handles various compatibility requirements (backward compatibility with old identifiers, forward compatibility with new identifiers) without requiring separate mechanisms for each case.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Manufacturing precision

If manual code revision is required for identifier updates, then code accuracy is maintained, but productivity decreases due to extensive revisions

Engineering Contradiction:
Improvecode accuracyVSAvoidcode update speed
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system implements self-service by automatically resolving identifier mismatches during code execution using the identifier map. This eliminates the need for manual code revision while maintaining code accuracy, as the automatic resolution process ensures correct identifier substitution without human intervention.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical process of manual code revision with an automated computational process. The identifier map and resolution mechanism substitute for human editors, automatically translating outdated identifiers to current ones during execution, thereby maintaining accuracy while dramatically improving productivity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10649744B1Systems and methods for handling renaming of programming constructs in programming environments
Publication Date: 2020.05.12 MATHWORKS INC
  • US10649744B1 patent drawing
  • US10649744B1 patent drawing
  • US10649744B1 patent drawing

AI summary

Apparatus and methods are described for adapting a programming environment to handle renamed programming constructs such as classes and packages. Non-canonical identifiers that reference renamed programming constructs can be used in code parts to be executed in the programming environment, and the code parts can execute, without disruption or user intervention, using related canonical identifiers. The solutions described herein provide backward and forward compatibility for code and data affected by renaming of programming constructs.