Graphical Program Compilation for Real-Time Deterministic Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deploying graphical programs with textual language portions to real-time targets is challenging due to issues with deterministic execution, as existing technologies struggle to handle dynamically typed languages and convert them for real-time processing.

Innovation Solution

A method that compiles graphical programs with textual language portions by inferring strict types, converting textual code into graphical data flow, and generating hardware description files for programmable hardware elements, ensuring deterministic execution on real-time targets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If dynamically typed programming language is used in graphical program, then programming flexibility and ease of use are improved, but deterministic execution on real-time targets deteriorates

Engineering Contradiction:
Improveprogramming flexibilityVSAvoiddeterministic execution
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary type inference and code conversion during the compilation phase before deployment to the real-time target. By inferring strict types from the dynamically typed code and converting it to a deterministic representation in advance, the system resolves the contradiction between programming flexibility and real-time execution reliability.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If textual language program portion is incorporated in graphical program, then programming versatility is improved, but compilation complexity for real-time execution worsens

Engineering Contradiction:
Improveprogramming versatilityVSAvoidcompilation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary compilation process that acts as a bridge between the textual language portion and the graphical program execution environment. This intermediary compiler performs type inference, code conversion, and optimization, thereby managing the complexity of compiling versatile programs while maintaining deterministic real-time execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If type propagation is used to infer strict types, then real-time execution determinism is improved, but compilation time increases

Engineering Contradiction:
Improveexecution determinismVSAvoidcompilation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies type propagation selectively to only those portions of the code that require strict typing for deterministic execution, rather than performing exhaustive type inference on the entire program. This partial application of type propagation reduces compilation overhead while maintaining the necessary execution determinism for real-time targets.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8423981B2Compiling a graphical program having a textual language program portion for a real time target
Publication Date: 2013.04.16 NATIONAL INSTRUMENTS CORP
  • US8423981B2 patent drawing
  • US8423981B2 patent drawing
  • US8423981B2 patent drawing

AI summary

Compiling a graphical program including a textual program portion for execution on a real time target. The graphical program may be created on a display or stored in a memory medium. The graphical program may include a plurality of connected nodes which visually indicate functionality of the graphical program. The graphical program may include at least one node which corresponds to a textual language program portion. The textual language program portion may be written or specified in a dynamically typed programming language. The graphical program may be compiled for deployment on the real time target. Compiling the graphical program may include compiling the plurality of connected nodes and the textual language program portion for deterministic real time execution on the real time target.