Dynamic Proxy Generation for Typed Language Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrating statically typed and dynamically typed languages is complicated due to differences in data type binding, requiring additional code to connect functions and convert data types, which can be cumbersome and require expertise in both programming models.

Innovation Solution

Automatically generating a statically typed native interface for dynamically typed functions, allowing conversion between statically and dynamically typed data, and enabling data passing by reference, without the need for detailed familiarity with the dynamically typed language's data types or programming model.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manually integrating statically typed and dynamically typed languages, then data type conversion and function connection can be achieved, but the complexity of integration increases and requires expertise in both programming models

Engineering Contradiction:
Improvedata type conversion accuracyVSAvoidintegration code complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an automatic interface generation system that acts as an intermediary between statically typed and dynamically typed languages. This system automatically generates binding code and performs type conversions without requiring manual integration efforts from developers, thus reducing integration complexity while maintaining data type conversion accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service by automatically analyzing the dynamically typed language's data types and programming model, then generating the necessary interface code and conversion logic on its own. This eliminates the need for developers to have expertise in both programming models, as the system handles the complex integration tasks autonomously.

Inventive Principle:
Principle #25Self-service

2Reliability

If additional code is written to connect functions and convert data types, then integration between languages is achieved, but the ease of operation decreases

Engineering Contradiction:
Improvefunction integration capabilityVSAvoidintegration effort
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary action by automatically generating all necessary interface code, type conversion logic, and function bindings before the integration is needed. This pre-computation approach eliminates the need for developers to write additional integration code manually, significantly reducing the ease of operation while ensuring reliable function integration.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If detailed familiarity with dynamically typed language's data types and programming model is required, then precise integration can be achieved, but the ease of operation decreases

Engineering Contradiction:
Improveintegration precisionVSAvoidexpertise requirement
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The system performs self-service by automatically analyzing the dynamically typed language's data types and programming model structures, then generating precise integration code based on this analysis. This eliminates the requirement for developers to have detailed familiarity with the dynamically typed language, as the system autonomously handles the complex analysis and code generation tasks while maintaining integration precision.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2661683B1Dynamically generating statically typed proxies for dynamically typed functions
Publication Date: 2019.02.27 MATHWORKS INC
  • EP2661683B1 patent drawingFigure 1
  • EP2661683B1 patent drawingFigure 2
  • EP2661683B1 patent drawingFigure 3A

AI summary

Embodiments of the present application may simplify an integration of statically typed and dynamically typed languages by automatically generating an implementation of a statically typed native interface for a given set of dynamically typed functions. In an embodiment, functions in a dynamically typed language are automatically interconnected with functions in a statically typed language. Code that bridges and/or connects a statically typed interface and a dynamically typed interface embodied in the dynamically typed source code may be automatically generated. The statically typed interface may be provided by a user. Further, an extensible set of runtime rules that determine how to convert between statically typed and dynamically typed data may be provided.