Automated Software Binding Generation for Legacy Code Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The generation and certification of software bindings between legacy low-level programming languages and modern high-level programming languages is a difficult and time-consuming process, often resulting in the underutilization of native capabilities and requiring detailed knowledge of both languages.

Innovation Solution

An automated system that extracts functions and documentation from source files written in a low-level language, generates software bindings in a high-level language, and verifies their functionality, allowing for the integration and use of legacy code without requiring extensive knowledge of the original language.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software bindings are generated manually with detailed knowledge of both legacy and modern languages, then the bindings can be accurate and reliable, but the process becomes difficult and time-consuming

Engineering Contradiction:
Improvebinding accuracyVSAvoidbinding generation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs automated self-analysis of legacy source files to extract function signatures, parameters, and documentation, generating bindings without requiring manual programmer intervention. The binding generator automatically parses the legacy code and produces high-level language bindings through systematic analysis rather than manual creation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The manual mechanical process of programmer analysis and binding creation is replaced with an automated computational system that uses parsing, pattern recognition, and rule-based generation to create bindings. This substitutes human cognitive effort with algorithmic processing.

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

2Ease of operation

If legacy code is rewritten in modern high-level languages, then the code becomes easier to use and expand, but the reliability and computational efficiency of the original code is lost

Engineering Contradiction:
Improvecode usabilityVSAvoidcode reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

Software bindings serve as an intermediary layer between high-level language interfaces and legacy low-level code. This mediator allows modern languages to access legacy functions while preserving the original code's reliability and performance characteristics, eliminating the need to rewrite proven legacy code.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments legacy code into individual functional components (functions, procedures, methods) and creates separate bindings for each, allowing selective integration of specific legacy capabilities into modern applications without requiring complete rewriting of the legacy codebase.

Inventive Principle:
Principle #1Segmentation

3Productivity

If software bindings are generated automatically without detailed language knowledge, then the process becomes efficient and accessible, but native capabilities of the source files may be overlooked or improperly utilized

Engineering Contradiction:
Improvebinding generation efficiencyVSAvoidcapability utilization accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The binding generator is designed with universal parsing and analysis capabilities that can handle multiple legacy programming languages and generate bindings for various high-level languages. The system performs multiple functions including syntax parsing, semantic analysis, documentation extraction, and binding generation through a single integrated process.

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

Solution Approach 2:

The system incorporates verification mechanisms that analyze generated bindings to ensure they properly represent the original legacy functions' capabilities, parameters, and behavior. This feedback loop validates that native capabilities are not overlooked or misrepresented in the generated bindings.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11327720B2Automated generation of software bindings
Publication Date: 2022.05.10 SIMPLY INSPIRED SOFTWARE INC
  • US11327720B2 patent drawing
  • US11327720B2 patent drawing
  • US11327720B2 patent drawing

AI summary

Method and apparatus for automatically generating, verifying and using software bindings. A function collector extracts functions from a library written in a first computer language in the form of exposed application program interfaces (APIs), and writes identifying information for the functions to a knowledge base. A document collector concurrently extracts human readable text, such as in the form of embedded comments and user manual documentation, and links this text in the knowledge base to the extracted functions. A set of generators operate to generate software language bindings and a user interface to enable a user to activate and review the human readable text using a different, second computer language. A test script generator can automatically validate operation of the software language bindings using verified test data sets.