Domain-Specific Language Interpreter for Cross-Platform Logic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Online service providers face challenges in efficiently updating domain logic across disparate platforms written in different programming languages, requiring time-consuming platform-specific changes and recompilation, which decreases availability and increases computational expense.
Innovation Solution
Encapsulating domain logic in interpretable code that can be evaluated by an interpreter at runtime, allowing changes to be made without modifying program code, using a domain-specific language and evaluators to determine user interface elements' properties based on contextual data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If domain logic is implemented in platform-specific programming languages, then each platform can be optimized for its specific requirements, but updates to domain logic require time-consuming platform-specific changes and recompilation
Solution Approach 1:
The patent introduces a domain-specific language (DSL) as an intermediary layer between the platform-specific programming languages and the domain logic. The DSL serves as a universal interface that can be translated to different platform-specific languages, allowing domain logic to be written once and deployed across multiple platforms without requiring platform-specific changes. This mediator eliminates the need for recompilation while maintaining platform optimization capabilities.
Solution Approach 2:
The domain-specific language is designed to be universal and platform-independent, allowing the same domain logic to be executed across different platforms (e.g., mobile, web, desktop) without modification. The DSL can be translated to various target languages including Java, JavaScript, C++, and others, making it a multi-functional solution that serves multiple platforms simultaneously.
2Adaptability or versatility
If domain logic is written in different programming languages for different platforms, then platform-specific functionality can be achieved, but personnel knowledge requirements increase and computational expense increases
Solution Approach 1:
The domain-specific language acts as a mediator that standardizes domain logic across platforms. Instead of requiring personnel to know multiple platform-specific programming languages, they only need to learn and work with the single DSL. The translation layer handles the complexity of converting the DSL to different target languages, reducing personnel knowledge requirements while maintaining platform-specific functionality.
Solution Approach 2:
The system creates platform-specific implementations by translating the universal DSL into different programming languages. Rather than writing separate domain logic for each platform, the same DSL code is copied and translated to match the requirements of each specific platform, reducing the need for personnel to understand multiple languages while preserving platform-specific functionality.
3Reliability
If conventional code recompilation is used for logic changes, then platform-specific optimizations are maintained, but availability decreases due to longer update times
Solution Approach 1:
The domain-specific language serves as an intermediary that enables hot-reloading of domain logic without requiring full recompilation of the entire application. The DSL can be dynamically translated and executed, allowing logic changes to be applied in real-time while maintaining platform-specific optimizations. This eliminates the availability loss associated with traditional recompilation processes.
Solution Approach 2:
The system transitions from static, compiled code to dynamic, interpretable domain logic. The domain-specific language can be dynamically loaded, translated, and executed at runtime, allowing changes to be made without shutting down or stopping the platform. This dynamic approach maintains platform-specific optimizations while significantly improving availability during updates.
Data Source
AI summary
Systems and methods are provided herein for natively interpreting logic across disparate platforms. Rather than executing server calls that are computationally expensive, logic may be extracted into code segments that can be evaluated at run time by an interpreter. The interpreter is passed a set of evaluators, features, and contextual data, each of which is expressed in a domain specific language. An evaluator maps an identifier to a rule and describes one or more contextual data fields with which the rule is to be evaluated. A feature corresponds to a logical condition that identifies the evaluator and a return value that is returned if the condition is met. The interpreter identifies the evaluator from the feature being evaluated and evaluates its corresponding rule based on the contextual data provided to return a return value. One or more operations may be performed based on the return value provided.


