Presentation Layer Marshalling for Multi-Language Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debuggers are limited in supporting multiple programming languages and require modifications when new languages or object types are introduced, leading to increased complexity and overhead due to language-specific type systems.

Innovation Solution

The use of marshalling functions generated by a target-language compiler to convert between language-specific and presentation-layer representations of data objects, allowing debuggers to work with opaque, programming language-independent representations, eliminating the need for language-specific conversion functions and separate presentation layers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional debuggers use language-specific type systems to display and modify program objects, then they can accurately represent program data, but they require modifications when new languages or object types are introduced, increasing device complexity

Engineering Contradiction:
Improveaccuracy of program object representationVSAvoidcomplexity of debugger structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a presentation layer as an intermediary between the debugger and program objects. This presentation layer provides a language-independent interface that mediates all interactions with program data, eliminating the need for the debugger to directly handle language-specific type systems. The presentation layer translates language-specific object representations into a universal format that the debugger can work with, thereby maintaining accuracy while reducing complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the debugging system into distinct layers: the presentation layer that handles language-independent representation and the underlying language-specific implementation layers. This segmentation allows the debugger to operate at the abstract presentation layer without being coupled to specific programming languages, reducing complexity while maintaining the ability to accurately represent program objects through the structured presentation interface.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If conventional debuggers implement separate presentation layers for each programming language, then they can provide language-specific debugging features, but the overhead increases when supporting multiple languages

Engineering Contradiction:
Improvesupport for multiple programming languagesVSAvoidoverhead of multiple presentation layers
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal presentation layer that serves all programming languages through a single interface. This presentation layer is designed to be language-agnostic, providing common debugging capabilities for all languages without requiring separate implementations. The universality of the presentation layer eliminates the overhead of maintaining multiple language-specific presentation layers while preserving adaptability to different programming languages through configuration and marshalling functions.

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

3Measurement precision

If conventional debuggers use language-specific conversion functions to convert program objects to display format, then they can accurately display program data, but modifications are required when new languages are introduced

Engineering Contradiction:
Improveprecision of program data displayVSAvoidease of debugger maintenance
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The presentation layer acts as an intermediary that handles all conversions from language-specific object representations to the universal display format. This eliminates the need for the debugger to contain language-specific conversion functions, as all conversions are performed through the presentation layer's standardized interface. When new languages are introduced, only the presentation layer needs to be updated, not the entire debugger, thereby maintaining precision while improving ease of maintenance.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If conventional debuggers access language-specific object representations directly, then they can efficiently retrieve program data, but they become coupled to specific programming languages

Engineering Contradiction:
Improveefficiency of data retrievalVSAvoidlanguage independence
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the data access path into two parts: efficient language-specific data retrieval at the implementation level and language-independent presentation at the debugger level. The presentation layer provides an efficient interface that maintains high productivity by leveraging the underlying language-specific optimizations while simultaneously ensuring language independence. This segmentation allows the debugger to remain adaptable to different languages without sacrificing data retrieval efficiency.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8930909B1Debugging using presentation layer representations of objects
Publication Date: 2015.01.06 MATHWORKS INC
  • US8930909B1 patent drawing
  • US8930909B1 patent drawing
  • US8930909B1 patent drawing

AI summary

Exemplary embodiments enable debugging executable code using a debugger in a computational device that provides a programming environment including a presentation layer. For example, an exemplary method includes providing a first marshalling function that receives a portion of information manipulated by the executable code and produces a presentation layer representation of the portion of the information. The presentation layer representation is compatible with a debugger that debugs the executable code. An exemplary method also includes debugging the executable code to produce a presentation layer representation of the portion of the information with the first marshalling function so as to display the presentation layer representation of the portion of the information to a user via a display device. The debugging also includes modifying the presentation layer representation of the portion of the information to produce modified information for use by the executable code, a device, or a user.