Visual Declarative Debugger Using Positional Metadata

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging datacentric programming languages is challenging due to the lack of established techniques for tracing data flow and identifying issues in declarative programming, where the syntax describes desired results rather than execution steps, making traditional debugging methods ineffective.

Innovation Solution

The method involves automatically augmenting input data structures with positional metadata during serialization, allowing for the tracing and visualization of data elements from input to output, enabling users to track data flow and identify errors without breakpoints, by using positional information to highlight corresponding elements in input and output data structures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional debugging methods are used for datacentric programming languages, then the debugging process requires manual tracing and monitoring, but the effectiveness is poor due to the declarative nature of the language

Engineering Contradiction:
Improvedebugging effectivenessVSAvoiddebugging complexity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary visualization system that acts as a mediator between the declarative program code and the data flow. This system automatically generates visual representations of data elements, their sources, and transformations without requiring manual intervention. The intermediary translates the abstract declarative operations into concrete visual traces that developers can follow, thereby improving debugging effectiveness while maintaining ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical manual tracing process with an automated visualization system. Instead of requiring developers to manually step through code and monitor variables, the system automatically generates visual representations of data flow, element origins, and transformations. This substitution eliminates the tedious manual operations while preserving the ability to trace and understand program behavior.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Loss of information

If manual tracing is performed to understand data flow, then detailed inspection is possible, but time consumption increases significantly

Engineering Contradiction:
Improvedata flow visibilityVSAvoiddebugging time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing metadata about data elements during normal program execution. This metadata includes information about element origins, transformations, and relationships. When debugging is needed, this pre-computed information is immediately available for visualization, eliminating the need for time-consuming manual tracing while maintaining complete data flow visibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates visual copies or representations of the actual data flow without requiring direct manual inspection. These visual representations are generated automatically from the program execution data and provide a simplified view of complex data transformations. Developers can understand data flow by examining these visual copies rather than manually tracing through the actual program logic, significantly reducing debugging time while preserving information visibility.

Inventive Principle:
Principle #26Copying

3Ease of operation

If breakpoints are used for debugging, then execution control is achieved, but the declarative nature of the language makes breakpoint placement ineffective

Engineering Contradiction:
Improveexecution controlVSAvoiddebugging accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent inverts the traditional debugging approach by not trying to control execution at specific points (breakpoints), but rather by visualizing the entire data flow and allowing developers to trace backwards from results to sources. Instead of stopping execution to inspect state, the system shows the complete transformation path, making the declarative operations visible and traceable without requiring execution control mechanisms that are ineffective for this paradigm.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11656973B2Visual declarative debugger
Publication Date: 2023.05.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11656973B2 patent drawing
  • US11656973B2 patent drawing
  • US11656973B2 patent drawing

AI summary

According to embodiments of the present disclosure, a method of debugging datacentric programming languages, a computer program product, and a computer system. The method may comprise receiving, by a processor, an expression to be evaluated against an input data structure; evaluating, by the processor, the expression to produce an output data structure, wherein the evaluating comprises automatically augmenting the input data structure with positional metadata; receiving a user selection of a data element from a datacentric programming element; and in response to the user selection, by the processor, using the positional metadata to display a providence of the selected data element.