Cross-Language Dependency Analysis Using Unified Program Constructs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing dependency analysis tools are inadequate for data processing systems using multiple programming languages, leading to incomplete or labor-intensive generation of dependency information.

Innovation Solution

A method to transform source code into language-independent constructs, allowing for the combination of dependency information across programs written in different languages, using a two-stage processing approach with language-dependent parsing and extraction to generate a unified dependency metadata structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If dependency analysis tools are used for data processing systems with multiple programming languages, then dependency information can be generated automatically, but existing tools are inadequate and produce incomplete dependency information

Engineering Contradiction:
Improvedependency information accuracyVSAvoidlanguage compatibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal dependency analysis framework that can process multiple programming languages (SQL, Python, Java, C++, etc.) through a common intermediate representation. The system translates language-specific abstract syntax trees into a language-agnostic intermediate representation, enabling single tool to analyze dependencies across heterogeneous programming languages uniformly

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

Solution Approach 2:

The patent introduces an intermediate representation layer between language-specific parsers and the dependency analysis engine. This intermediate representation serves as a mediator that standardizes diverse programming language constructs into a common format, allowing the analysis backend to operate uniformly across different languages without being language-specific

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual dependency analysis is performed for mixed-language systems, then comprehensive dependency information can be obtained, but it requires significant effort and time

Engineering Contradiction:
Improvedependency information completenessVSAvoiddependency analysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary parsing of source code into abstract syntax trees and translates them into intermediate representation before dependency analysis. This preliminary processing prepares the code in a standardized format that enables automated dependency extraction, eliminating the need for manual analysis while ensuring comprehensive coverage of all dependencies

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces manual dependency analysis (mechanical human effort) with an automated computational system. The framework uses programmatic translation from abstract syntax trees to intermediate representation, followed by automated dependency extraction algorithms, substituting human analysts with an automated multi-language capable system

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

3Measurement precision

If separate dependency analysis tools are used for each programming language, then language-specific accuracy can be maintained, but the overall system requires multiple tools and increased complexity

Engineering Contradiction:
Improvelanguage-specific dependency accuracyVSAvoidnumber of analysis tools
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges multiple language-specific dependency analysis tools into a single unified framework. By combining language-specific frontends (parsers) with a common intermediate representation and shared analysis backend, the system achieves the functionality of multiple specialized tools while reducing overall system complexity and enabling cross-language dependency analysis

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP4202644B1Automated dependency analyzer for heterogeneously programmed data processing system
Publication Date: 2026.02.18 AB INITIO TECHNOLOGY LLC
  • EP4202644B1 patent drawingFigure 1A
  • EP4202644B1 patent drawingFigure 1B
  • EP4202644B1 patent drawingFigure 2

AI summary

A dependency analyzer for use with a data processing system comprises: at least one computer hardware processor; at least one non-transitory computer-readable storage medium storing processor executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform: for each of a plurality of programs configured for execution by the data processing system, constructing a first data structure based on parsing the program, wherein the first data structure reflects operations in the program; for each of a plurality of the first data structures: selecting operations reflected in the first data structure that impact a dependency on one or more data elements, such that operations that do not impact a dependency are not selected; and for each selected operation, recording in a second data structure an indication of the selected operation by recording dependency constructs from a set of dependency constructs, wherein the set of dependency constructs, for each of the plurality of programs, is independent of a language in which the program is written; processing the plurality of second data structures, wherein the processing comprises identifying control flow or data flow dependencies on data elements, said dependencies being those that would arise during execution of any of the plurality of programs; and recording the identified dependencies in a dependency data structure, wherein the dependency data structure comprises data indicating data elements in the plurality of programs structured so as to indicate dependencies between the data elements.