Converting Class-Oriented Data Flow Programs to Structure-Oriented Formats
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Adaptability or versatility
If class inheritance hierarchies are implemented dynamically, then code reusability is improved, but manufacturing precision and deployment reliability to hardware worsen
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.
Data Source
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.


