Converting Class-Oriented Data Flow Programs to Structure-Oriented Formats

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Object-oriented programming languages rely heavily on dynamic mechanisms like pointers and memory addressing, which are not supported in programmable hardware elements such as FPGAs, making it difficult to deploy class-oriented data flow programs on these devices.

Innovation Solution

A method to convert class-oriented data flow programs into structure-oriented data flow programs, allowing them to be deployed on devices that do not support class operations by replacing class instances with structures and using generic structures for dynamic type determination at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If class-oriented programming with dynamic mechanisms (pointers, memory addressing) is used, then programming flexibility and object-oriented capabilities are improved, but compatibility with programmable hardware elements (FPGAs) deteriorates

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidhardware compatibility
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent creates a static copy of the class structure as a structure type definition that can be deployed to hardware. Instead of using dynamic class instances with pointers, the invention copies the essential data structure layout into a static format that hardware can execute, eliminating the need for runtime memory management while preserving the organizational benefits of class-oriented design.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The invention changes the fundamental parameters of how object-oriented structures are represented in memory. Rather than using dynamic allocation and pointer-based access, the patent transforms class instances into statically allocated structures with direct field access, changing the memory management paradigm from dynamic to static while maintaining the logical structure of the original classes.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If dynamic memory allocation and pointers are used in object-oriented programs, then runtime flexibility is improved, but device complexity and resource requirements worsen

Engineering Contradiction:
Improveruntime flexibilityVSAvoidresource requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the essential functional capabilities of object-oriented programming (data organization, inheritance hierarchies, polymorphism) while removing the dynamic memory management mechanisms (pointers, allocation, deallocation). This separation allows the program to retain high-level OOP benefits without the underlying complexity of dynamic memory systems.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The invention replaces expensive, complex dynamic memory operations with simple, static structure definitions that require minimal resources. The static structures act as lightweight substitutes for full-featured class instances, providing the necessary data organization without the overhead of runtime memory management infrastructure.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Adaptability or versatility

If class inheritance hierarchies are implemented dynamically, then code reusability is improved, but manufacturing precision and deployment reliability to hardware worsen

Engineering Contradiction:
Improvecode reusabilityVSAvoiddeployment reliability
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent performs preliminary compilation of inheritance hierarchies into static structure definitions before deployment to hardware. All inheritance relationships, method resolutions, and data layouts are determined and fixed during the compilation phase, eliminating runtime uncertainties and ensuring reliable deployment to hardware platforms that cannot handle dynamic behavior.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8356290B2Conversion of a class oriented data flow program with inheritance to a structure oriented data flow program
Publication Date: 2013.01.15 NATIONAL INSTRUMENTS CORP
  • US8356290B2 patent drawing
  • US8356290B2 patent drawing
  • US8356290B2 patent drawing

AI summary

System and method for converting a class oriented data flow program to a structure oriented data flow program. A first data flow program is received, where the first data flow program is an object oriented program comprising instances of one or more classes, and wherein the first data flow program is executable to perform a first function. The first data flow program is automatically converted to a second data flow program, where the second data flow program does not include the instances of the one or more classes, and where the second data flow program is executable to perform the first function. The second data flow program is stored on a computer memory, where the second data flow program is configured to be deployed to a device, e.g., a programmable hardware element, and where the second data flow program is executable on the device to perform the first function.