Compiler Optimized Data Model Evaluation via Dynamic Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face difficulties in writing, optimizing, and tuning code for data model evaluation, which is complex and costly, especially when dealing with static data model evaluation using techniques like threaded code and just-in-time compilation.

Innovation Solution

A system that translates data model expressions from a domain-specific language into a second programming language, compiles the code, and generates an optimized shared library, leveraging existing optimizing compilers to optimize data model evaluation, thereby reducing development costs and improving performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers write optimizing code using threaded code or just-in-time compilation to evaluate data model expressions, then evaluation performance is improved, but development complexity and cost increase significantly

Engineering Contradiction:
Improvedata model evaluation performanceVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary translation layer that converts domain-specific language expressions into optimized target language code. This mediator handles the complexity of optimization techniques (threaded code, JIT compilation) internally, allowing developers to write simple domain-specific expressions while the translation layer generates the complex optimized code automatically, thus improving evaluation performance without increasing developer burden

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service optimization where the compilation and optimization process is automated through the translation layer. The system automatically translates domain-specific expressions into optimized code without requiring manual intervention for threading or JIT configuration, allowing the evaluation system to self-optimize while maintaining simple development workflows

Inventive Principle:
Principle #25Self-service

2Productivity

If developers manually optimize and tune code for data model evaluation, then evaluation efficiency improves, but development time and cost increase

Engineering Contradiction:
Improveevaluation efficiencyVSAvoiddevelopment time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The translation layer performs preliminary optimization actions by automatically generating optimized target code during the translation phase. Common optimization patterns are pre-implemented in the translation rules, so the system proactively applies optimizations before runtime without requiring developers to manually tune code, thus improving evaluation efficiency while reducing development time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses copying by translating domain-specific expressions into pre-optimized target language templates. Instead of requiring developers to manually optimize each expression, the translation layer copies proven optimization patterns from the target language into the generated code, achieving efficient evaluation without manual tuning effort

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10048952B2Compiler optimized data model evaluation
Publication Date: 2018.08.14 ORACLE INT CORP
  • US10048952B2 patent drawing
  • US10048952B2 patent drawing
  • US10048952B2 patent drawing

AI summary

A data model evaluation optimizer is provided that optimizes data model evaluation. An expression of a data model is received that is defined using a domain-specific language, the expression to be evaluated by an application, and the application having been written in a first programming language. New code is dynamically generated in a second programming language by translating the domain-specific language expression into the second programming language. The generated new code is compiled (and optimized) into a compilation of the second programming language. The compilation of the second programming language is made available to the application of the first programming language such that the application evaluates the expression using the compilation.