Universal Debugger Architecture for Domain Specific Languages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The proliferation of domain-specific languages (DSLs) in cloud computing environments leads to industry-wide duplication of effort and lack of compatibility in debugger creation, as there is no universal architecture for creating debuggers, resulting in redundant and costly development of debuggers for each DSL.

Innovation Solution

The Java Platform Debug Architecture (JPDA) is utilized as a universal, common architecture for creating debuggers, enabling a debugger client to communicate with and monitor a program executing on a virtual machine, using the Java Debug Interface (JDI) and Java Debug Wire Protocol (JDWP) to instrument DSL code with debugging information and mirror the state of the virtual machine, facilitating compatibility across different DSLs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a debugger is created for each domain specific language independently, then the debugger can be tailored to the specific language's needs, but the development effort is duplicated across multiple languages and there is no compatibility between debuggers

Engineering Contradiction:
ImproveDebugger compatibility across DSLsVSAvoidNumber of separate debugger implementations
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal debugger architecture based on JPDA that can debug multiple DSLs through a common interface. The system defines a standardized debugger interface that works across different domain-specific languages, eliminating the need for separate debugger implementations for each DSL while maintaining language-specific debugging capabilities through the standardized interface.

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

Solution Approach 2:

The patent introduces an intermediary layer (the standardized debugger interface and translation mechanism) between the debugger implementation and the DSL-specific code. This intermediary translates DSL-specific debugging requirements into the universal JPDA interface, allowing a single debugger to serve multiple DSLs without direct integration with each language's internals.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If industry-wide standards for debugger architecture are established, then compatibility and reuse are improved, but flexibility to accommodate language-specific debugging needs may be reduced

Engineering Contradiction:
ImproveDebugger development efficiencyVSAvoidLanguage-specific debugging capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the debugger architecture into distinct layers: a universal JPDA interface layer that handles common debugging functions, and DSL-specific adaptation layers that handle language-specific requirements. This segmentation allows the standardized interface to improve productivity while the adaptation layers preserve language-specific capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making different parts of the debugger architecture serve different purposes: the core JPDA interface provides standardized, portable debugging functionality, while the DSL-specific translation layers provide localized, language-appropriate debugging features. Each layer has optimized properties for its specific function.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2915047B1System and method for debugging domain specific languages
Publication Date: 2019.12.11 ORACLE INT CORP
  • EP2915047B1 patent drawingFigure 1
  • EP2915047B1 patent drawingFigure 2
  • EP2915047B1 patent drawingFigure 3

AI summary

Systems and methods for debugging domain specific languages are provided. In accordance with an embodiment, one such system can comprise a web which includes a virtual machine, a debug execution machine, and a domain specific language (DSL)-specific tool interface. The web server is configured to compile DSL code received from a developer computer. During compilation the DSL code is instrumented to include debugging information received from the developer computer. The web server is also configured to execute, by the virtual machine, the instrumented code. During execution the instrumented code communicates with the debug execution machine such that a state of the debug execution machine mirrors a state of the virtual machine.