IP Library Granted Patent US 7,954,059
Granted Patent B2
US 7,954,059 · App. 11/539,449 · Granted May 31, 2011

Automatic conversion of text-based code having function overloading and dynamic types into a graphical program for compiled execution

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,954,059
App. No.
11/539,449
Granted
May 31, 2011
Kind
B2
Abstract

Automatic conversion of textual program code to graphical program code is performed. The method automatically translates the given functionality of a textual program code into executable graphical program code, corresponding to the same functionality. The method includes a parsing routine that generates a syntax tree and code generation routines, which create graphical program code from the syntax tree.

Claims (65)

1. A method for executing a program, the method comprising:

utilizing a computer to perform:

displaying textual program instructions on a display in response to user input, wherein the textual program instructions perform a first procedure, wherein the textual program instructions are in a textual programming language having dynamic types and overloaded functions, wherein the textual program instructions include a function name that resolves to a function of a plurality of possible functions based on a type;

automatically converting the textual program instructions into a graphical program in a graphical programming language, wherein the graphical programming language is different from the textual programming language, wherein the graphical program comprises a plurality of connected nodes, wherein said automatically converting the textual program instructions comprises creating the nodes and connections between the nodes without user input specifying the nodes and the connections, wherein said automatically converting the textual program instructions into a graphical program comprises creating a graphical conditional structure in the graphical program, wherein the graphical conditional structure is configured to receive the type at runtime and invoke execution of a respective function of the plurality of possible functions based on the received type;

compiling the graphical program in the graphical programming language to produce execution instructions; and

executing the execution instructions, wherein said executing performs the first procedure.

2. The method of claim 1 ,

wherein said automatically converting is performed in response to user input to execute the textual program instructions.

3. The method of claim 1 ,

wherein said automatically converting, said compiling, and said executing are performed in response to a single user input.

4. The method of claim 1 ,

wherein the graphical program is a graphical data flow program, wherein the connections indicate flow of data among the nodes.

5. The method of claim 1 ,

wherein said converting the textual program instructions into a graphical program comprises creating a graphical sub-program first node that is configured to invoke a graphical sub-program of a plurality of possible graphical sub-programs based on the received type determined at runtime, wherein the plurality of possible graphical sub-programs correspond to the plurality of possible functions.

6. The method of claim 1 ,

wherein the graphical programming language has fixed types.

7. The method of claim 1 , wherein the textual program instructions include another function name that resolves to a function of another plurality of functions based on a data structure type, wherein said automatically converting the textual program instructions comprises:

determining types of data structures specified in the textual program instructions; and

resolving the function of the other plurality of functions based on said determining the types of data structures specified in the textual program instructions, wherein said resolving is performed before runtime.

8. The method of claim 7 , wherein said determining and said resolving are performed concurrently.

9. The method of claim 1 ,

wherein the textual program instructions comprise a first path declaration preceding the function name;

wherein said converting the textual program instructions into a graphical program comprises creating graphical program code that is configured to, at runtime, determine the plurality of possible functions using the first path declaration.

10. The method of claim 9 , wherein the first path declaration indicates one or more locations of the plurality of possible functions.

11. The method of claim 1 ,

wherein the textual program instructions comprise a function handle declaration, and wherein the function handle declaration indicates the plurality of possible functions; and

wherein said converting the textual program instructions into a graphical program comprises creating the conditional structure in the graphical program in response to the function handle declaration.

12. The method of claim 1 ,

wherein the textual program instructions comprise a script for performing the first procedure, and wherein the first procedure is a mathematical operation.

13. A non-transitory computer-accessible memory medium comprising first program instructions executable by a processor to:

display textual program instructions on a display in response to user input, wherein the textual program instructions perform a first procedure, wherein the textual program instructions are in a textual programming language having dynamic types and overloaded functions, wherein the textual program instructions include a function name that resolves to a function of a plurality of possible functions based on a type;

automatically convert the textual program instructions into a graphical program in a graphical programming language, wherein the graphical programming language is different from the textual programming language, wherein the graphical program comprises a plurality of connected nodes, wherein in automatically converting the textual program instructions, the first program instructions are executable to create the nodes and connections between the nodes without user input specifying the nodes and the connections, wherein in converting the textual program instructions into a graphical program, the first program instructions are executable to create a conditional structure in the graphical program, wherein the conditional structure is configured to receive the type at runtime and is useable to invoke execution of a respective function of the plurality of possible functions based on the received type;

compile the graphical program in the graphical programming language to produce execution instructions; and

execute the execution instructions, wherein executing the execution instructions performs the first procedure.

14. The non-transitory memory medium of claim 13 ,

wherein the automatic conversion, the compiling, and the execution are performed in response to a single user input.

15. The non-transitory method of claim 13 ,

wherein in converting the textual program instructions into a graphical program, the first program instructions are executable to create a graphical sub-program first node that is configured to invoke a graphical sub-program of a plurality of possible graphical sub-programs based on the received type determined at runtime, wherein the plurality of possible graphical sub-programs correspond to the plurality of possible functions.

16. The non-transitory memory medium of claim 13 ,

wherein the graphical programming language has fixed types.

17. The non-transitory memory medium of claim 13 , wherein the textual program instructions include another function name that resolves to a function of another plurality of functions based on a data structure type, wherein in automatically converting the textual program instructions, the first program instructions are executable to:

determine types of data structures specified in the textual program instructions; and

resolve the function of the other plurality of functions based on the determination of the types of data structures specified in the textual program instructions, wherein the resolution of the function is performed before runtime.

18. The non-transitory memory medium of claim 13 ,

wherein the textual program instructions comprise a first path declaration preceding the function name;

wherein in converting the textual program instructions into a graphical program, the first program instructions are executable to create graphical program code that is configured to, at runtime, determine the plurality of possible functions using the first path declaration.

19. The non-transitory memory medium of claim 13 ,

wherein the textual program instructions comprise a function handle declaration, and wherein the function handle declaration indicates the plurality of possible functions; and

wherein in converting the textual program instructions into a graphical program, the first program instructions are executable to create the conditional structure in the graphical program in response to the function handle declaration.

20. The non-transitory memory medium of claim 13 ,

wherein the textual program instructions comprise a script for performing the first procedure, and wherein the first procedure is a mathematical operation.

21. A system configured to execute a program, the system comprising:

a processor;

a display coupled to the processor;

a memory medium coupled to the processor, wherein the memory medium comprises first program instructions executable to:

display textual program instructions on the display in response to user input, wherein the textual program instructions perform a first procedure, wherein the textual program instructions are in a textual programming language having dynamic types and overloaded functions, wherein the textual program instructions include a function name that resolves to a function of a plurality of possible functions based on a type determined at runtime;

automatically convert the textual program instructions into a graphical program in a graphical programming language, wherein the graphical programming language is different from the textual programming language, wherein the graphical program comprises a plurality of connected nodes, wherein in automatically converting the textual program instructions, the first program instructions are executable to create the nodes and connections between the nodes without user input specifying the nodes and the connections, wherein in converting the textual program instructions into a graphical program, the first program instructions are executable to create a conditional structure in the graphical program, wherein the conditional structure is configured to receive the type at runtime and invoke execution of a respective function of the plurality of possible functions based on the received type;

compile the graphical program in the graphical programming language to produce execution instructions; and

execute the execution instructions, wherein executing the execution instructions performs the first procedure.

22. A method for automatically converting text-based code to a graphical program, the method comprising:

utilizing a computer to perform:

displaying textual program instructions on the display in response to user input, wherein the textual program instructions perform a first procedure, wherein the textual program instructions are in a textual programming language having dynamic types and overloaded functions, wherein the textual program instructions include a function name that resolves to a function of a plurality of possible functions based on a type determined at runtime;

receiving user input specifying execution of the first procedure;

automatically converting the textual program instructions into a graphical program in a graphical programming language in response to said receiving user input, wherein the graphical programming language is different from the textual programming language, wherein the graphical program comprises a plurality of interconnected nodes which visually indicates functionality of the graphical program, wherein said automatically converting the textual program instructions into a graphical program comprises creating a graphical conditional structure in the graphical program, wherein the graphical conditional structure is configured to receive the type at runtime and invoke execution of a respective function of the plurality of possible functions based on the received type; and

automatically executing the graphical program in the graphical programming language in response to said receiving user input, wherein said executing the graphical program comprises performing the first procedure specified by the textual program instructions.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →