Semantic Variable Linking for Modular Binary Object Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing linker/loader technology in contemporary operating systems, such as AIX, Linux, and Z/OS, is inadequate for handling the complexities introduced by Object Oriented programming languages, requiring entire programs to be retranslated for changes like adding or removing virtual functions, which restricts the flexibility and maintenance of shared libraries.

Innovation Solution

A method where software code is translated into binary objects using semantic variables for hard-coded values, allowing only affected objects to be recompiled, rather than the entire program, by creating a table of semantic variables that can be replaced with hard-coded values during the linking or loading process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional linker/loader technology is used, then programs can be loaded into memory, but entire programs must be retranslated when changes are made to shared libraries

Engineering Contradiction:
Improveflexibility in modifying shared librariesVSAvoidtime required for retranslation
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the translation process by introducing semantic variables that separate compile-time constants from runtime values. This allows individual binary objects to be translated independently without requiring retranslation of the entire program when shared libraries are modified, directly resolving the contradiction between adaptability and translation time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces semantic variables as intermediaries between the binary objects and hard-coded values. These semantic variables act as mediators that can be replaced during linking or loading, enabling modifications to shared libraries without requiring complete retranslation of dependent programs.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If semantic variables are introduced to enable modular updates, then only affected objects need recompilation, but the translation process becomes more complex

Engineering Contradiction:
Improvespeed of program updatesVSAvoidcomplexity of translation process
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-translating source code into binary objects with semantic variables embedded, but not yet resolved to hard-coded values. This preliminary translation stage separates the compilation process from the final value resolution, enabling faster updates since only affected objects need recompilation rather than complete program retranslation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter representation from direct hard-coded values to semantic variables that can be dynamically resolved. This parameter change enables the system to maintain productivity by allowing selective recompilation while managing complexity through standardized semantic variable handling mechanisms.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If shared libraries are made resizable and modular, then flexibility in library updates is improved, but compatibility issues between different program versions arise

Engineering Contradiction:
Improveresizability of classesVSAvoidbinary compatibility between releases
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces dynamics by making class sizes and object layouts adjustable rather than fixed. Semantic variables enable the system to dynamically adapt to different class definitions and memory layouts, allowing shared libraries to be resized or modified without breaking binary compatibility with existing program versions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements feedback mechanisms that allow the system to detect and resolve compatibility issues when semantic variables are resolved. This feedback loop ensures that when shared libraries are modified, the system can identify and address potential compatibility problems, maintaining reliability while enabling flexibility.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8813045B2Object level compatibility and class resizing utilizing semantic values
Publication Date: 2014.08.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8813045B2 patent drawing
  • US8813045B2 patent drawing
  • US8813045B2 patent drawing

AI summary

A method of converting software code to an object on a computing device may include receiving the software code at the computing device and translating at the computing device the software code to an object file. Translating the software to the object file may include determining that the software code includes an item of interest that requires a value being coded into the object. The method may also include creating a variable to represent the coded value and storing the variable, which is linked to the coded value, in a table of variables associated with the object file.