Host Language DSL Integration Framework

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The integration of multiple programming models and languages in enterprise applications leads to inefficiencies in development and runtime due to semantic mismatches and the need for extensive translation and optimization across different silos, resulting in increased costs and complexity.

Innovation Solution

A programming framework that integrates multiple programming languages at the language level by extending a host language with other languages as native constructs, allowing seamless interoperation and optimization across languages without external function calls, using a meta-framework that includes a lexical analyzer and DSL processors to handle code written in different languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple programming languages and models are integrated using traditional silo-based architecture with external function calls, then developers can use specialized tools for different problem domains, but the system suffers from semantic mismatches, increased translation overhead, and reduced runtime optimization

Engineering Contradiction:
Improveability to use specialized programming modelsVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple programming languages and models into a single integrated language system where DSLs are embedded as native constructs within a host language. This eliminates the silo-based architecture and external function call interfaces, allowing code from different programming models to interoperate directly without translation layers or semantic mismatches.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The host language is designed to be universal by incorporating multiple domain-specific languages as native constructs. This allows a single language system to perform multiple functions - executing host language code, DSL code, and facilitating seamless interoperation between different programming paradigms without requiring separate runtime environments or containers for each language.

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

2Productivity

If multiple programming languages are integrated at the language level with native constructs, then runtime optimization and developer efficiency improve, but the implementation complexity of the programming framework increases

Engineering Contradiction:
Improvedeveloper efficiencyVSAvoidframework implementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The programming framework is segmented into distinct components including a host language processor, DSL processors for each embedded language, and a lexical analyzer. This modular architecture manages implementation complexity by organizing the integrated language system into manageable, independently processable units that can be developed and maintained separately while working together seamlessly.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If traditional function call interfaces are used to integrate code from different programming languages, then language autonomy is maintained, but the integration becomes clunky and requires additional function calls that programmers must learn

Engineering Contradiction:
Improvelanguage autonomyVSAvoidprogramming simplicity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

By merging multiple programming languages into a single integrated language system with native constructs, the patent eliminates the need for external function call interfaces. Code from different programming models can call each other directly without requiring explicit function call syntax or learning additional interface conventions, while maintaining the semantic integrity of each language through the unified processing architecture.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8533672B2Extending the functionality of a host programming language
Publication Date: 2013.09.10 SAP SE
  • US8533672B2 patent drawing
  • US8533672B2 patent drawing
  • US8533672B2 patent drawing

AI summary

To enable language-level integration of multiple programming languages into a single programming framework, one or more domain specific languages (DSLs) are specified as incremental extensions to a host programming language. An application created in this framework may include program code written in the host language as well as DSL inset code that is written in any of the DSLs. The extensions to the host language are described in DSL specifications, which define how the DSL inset code is processed. At runtime, DSL inset code in the source code is detected and passed to a DSL inset processor for execution according to an appropriate DSL specification, whereas source code in the host language is executed by a host language processor.