Cross-Language Object Sharing via Reference Counting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current technologies face challenges in enabling seamless communication and object sharing between computer programs written in different languages, particularly in object-oriented programming environments, where objects created in one language are not easily accessible or manipulable by another language.

Innovation Solution

The system allows for the creation of an instance of an instantiated class definition as an object that can be accessed and manipulated by both environments, with memory allocation and reference counting mechanisms ensuring that the object is deleted when no longer needed, enabling communication and interaction between disparate programming language environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If objects are created in one programming language environment, then the object can be accessed and manipulated by that language, but other programming language environments cannot easily access or manipulate the object

Engineering Contradiction:
Improveobject accessibility across languagesVSAvoidcommunication mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent employs an intermediary mechanism (such as a common memory space, interface layer, or serialization protocol) that enables objects created in one programming language environment to be accessed and manipulated by other programming language environments. This intermediary translates or bridges the differences between language-specific object representations, allowing cross-language communication without requiring complex direct integration between each language pair.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements a universal object representation or interface that can be understood and manipulated by multiple programming language environments. This universal mechanism allows a single object instance to serve multiple language environments simultaneously, enhancing adaptability while avoiding the need for separate object instances for each language.

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

2Adaptability or versatility

If multiple programming language environments share access to the same object, then communication between languages is enabled, but memory management becomes complex due to multiple references

Engineering Contradiction:
Improvecross-language object sharingVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary memory management mechanism that mediates between multiple programming language environments sharing access to the same object. This intermediary maintains a centralized reference count or ownership registry that tracks all references to shared objects across different language environments, automatically managing memory allocation and deallocation without requiring each language environment to independently manage references.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements a feedback mechanism where the intermediary continuously monitors reference counts from multiple language environments and provides feedback on object lifecycle status. When the reference count reaches zero (indicating no language environment needs the object), the intermediary automatically triggers garbage collection or memory deallocation, ensuring safe and efficient memory management.

Inventive Principle:
Principle #23Feedback

3Loss of energy

If reference counting is used to manage shared objects between languages, then memory efficiency is improved, but the system requires mechanisms to track references from multiple environments

Engineering Contradiction:
Improvememory efficiencyVSAvoidreference tracking mechanism
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent implements a universal reference counting mechanism that serves multiple programming language environments simultaneously through a single centralized system. This multi-functional reference counter can track references from any language environment using a unified interface, eliminating the need for separate reference counting systems for each language and reducing overall system complexity while maintaining memory efficiency.

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

Data Source

PatentUS11403073B2System and method for enabling communication between disparate computer languages by sharing objects
Publication Date: 2022.08.02 MZ IP HOLDINGS LLC
  • US11403073B2 patent drawing
  • US11403073B2 patent drawing
  • US11403073B2 patent drawing

AI summary

A method, a system, and an article are provided for enabling communication between disparate computer languages. An example computer-implemented method includes: providing on a computing device (i) a first environment supporting a first computer language and (ii) a second environment supporting a second computer language different from the first computer language; providing an instance of an instantiated class definition as an object; accessing the object from both the first environment and the second environment; and deleting the object once a reference count indicates that the object is no longer being accessed by the first environment and the second environment.