Compiler Optimized Data Model Evaluation via Dynamic Translation
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Productivity
If developers manually optimize and tune code for data model evaluation, then evaluation efficiency improves, but development time and cost increase
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
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
Data Source
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.


