Cross-Language Inlining via Intermediate Representation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multiple language programs face performance issues and increased development costs due to the need for additional compilation units and reduced optimization opportunities when compiling code written in different programming languages, as existing methods do not effectively integrate and optimize across languages before compilation.

Innovation Solution

A method and system for cross-language inlining that translates source code from multiple languages into intermediate representations (IR), composes these IRs into a cross-language IR, and compiles it into machine code, allowing for optimizations and modifications before final compilation, thereby improving execution speed and reducing the complexity of working with multiple languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple language programs use additional compilation units to compile code in different languages, then the program can utilize modules from different languages, but the number of modification opportunities is reduced and performance is lowered

Engineering Contradiction:
Improveability to utilize modules from different languagesVSAvoidperformance during execution
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges multiple language compilation units into a single unified compilation process. Instead of compiling each language separately through different compilation units, the system translates all languages to a common intermediate representation and compiles them together as one unit, thereby maintaining multi-language capability while improving optimization opportunities and execution performance.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediate representation (IR) as a mediator between different programming languages and the compilation process. This common IR serves as a universal intermediary that all languages translate into, enabling the compiler to handle multiple languages uniformly and perform optimizations across language boundaries without requiring separate compilation units for each language.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple language programs use additional compilation units, then different languages can be compiled, but the work necessary to allow use of a second language becomes costly and time consuming

Engineering Contradiction:
Improveability to compile multiple languagesVSAvoidtime required to compile multiple language programs
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent creates a universal compilation framework where a single compilation unit handles multiple languages through a common intermediate representation. This universal approach eliminates the need for separate specialized compilation units for each language, significantly reducing the time and resources required to compile multi-language programs while maintaining the ability to support various programming languages.

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

3Adaptability or versatility

If code is written in multiple languages, then the program can access information and routines from different languages, but the performance is higher in the primary language than in secondary languages

Engineering Contradiction:
Improvecross-language access capabilityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical approach of using separate compilation units for different languages with a unified translation and compilation system. By translating all languages to a common intermediate representation and compiling them together, the system eliminates the performance penalties associated with separate compilation and execution of multi-language code, enabling cross-language access while maintaining optimal execution performance.

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

Data Source

PatentUS9740463B2Mechanism for increasing the performance of multiple language programs by inserting called language IR into the calling language
Publication Date: 2017.08.22 ORACLE INT CORP
  • US9740463B2 patent drawing
  • US9740463B2 patent drawing
  • US9740463B2 patent drawing

AI summary

A method and system of cross-language inlining that includes receiving source code of a multiple language program, the source code including a main language and a first access of a first foreign object in a first additional language; translating the main language to obtain a main language intermediate representation (IR); translating the first additional language to obtain a first IR snippet; composing, before performing a compilation, the main language IR and the first IR snippet to obtain a cross-language IR; and performing the compilation of the cross-language IR to obtain machine code corresponding to the multiple language program.