IP Library Granted Patent US 7,975,233
Granted Patent B2
US 7,975,233 · App. 11/539,424 · Granted Jul 5, 2011

Automatic conversion of a textual language into a graphical program representation

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,975,233
App. No.
11/539,424
Granted
Jul 5, 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 (94)

1. A method for creating a graphical program, the method comprising:

utilizing a computer to perform:

receiving user input specifying textual program code in a numerical analysis programming language; and

automatically creating a graphical program in a graphical programming language in response to receiving the textual program code,

wherein the graphical program comprises a plurality of interconnected nodes, wherein the plurality of interconnected nodes visually indicates functionality of the graphical program, wherein said automatically creating the graphical program comprises generating graphical code, including translating functions in the textual program code along with their associated parameters into corresponding graphical code versions and data types in the graphical programming language, thereby generating the plurality of interconnected nodes;

wherein the graphical program in the graphical programming language is compilable to produce executable code,

wherein said automatically creating comprises creating the graphical program without user input specifying the nodes or connections between the nodes,

wherein the functionality of the graphical program corresponds to the functionality specified in the textual program code.

2. The method of claim 1 , wherein the graphical program is a graphical data flow program, wherein connections between nodes indicate that data produced by one node is used by another node.

3. The method of claim 1 , further comprising:

displaying the graphical program on a display.

4. The method of claim 1 , wherein said automatically creating the graphical program comprises:

automatically generating a graphical program generation program which is executable to create the graphical program; and

executing the graphical program generation program to create the graphical program.

5. The method of claim 4 , wherein the graphical program generation program is created in an XML format.

6. The method of claim 1 , wherein automatically creating further comprises:

automatically generating a syntax tree in response to receiving the textual program code; and

automatically creating the graphical program based on the syntax tree.

7. The method of claim 6 , wherein the syntax tree is automatically generated as a native data structure of the graphical program.

8. The method of claim 6 ,

wherein the syntax tree comprises nodes useable to create the graphical program;

wherein said automatically creating the graphical program further comprises:

searching for unprocessed nodes in the syntax tree that do not have any child nodes;

searching for unprocessed nodes in the syntax tree whose child nodes are all processed; and

determining if any nodes in the syntax tree are found to be unprocessed.

9. The method of claim 8 , further comprising:

if no nodes in the syntax tree are found to be unprocessed, executing a post-processing routine, wherein the post-processing routine comprises creating a graphical program generation program.

10. The method of claim 8 , further comprising:

if any nodes in the syntax tree are found to be unprocessed, selecting a node for processing;

determining a node-type for the selected node;

executing a code generation routine specific to the node-type for the selected node; and

marking the selected node as processed.

11. The method of claim 10 , wherein said executing the code generation routine further comprises:

automatically generating graphical code associated with the selected node.

12. The method of claim 10 , wherein said executing the code generation routine further comprises:

automatically generating graphical program generation code that defines steps for building graphical code corresponding to a node in the syntax tree;

accumulating the graphical program generation code for a plurality of processed nodes in the syntax tree; and

storing the graphical program generation code.

13. The method of claim 1 , wherein the numerical analysis programming language is loosely typed.

14. The method of claim 1 , wherein the textual program code in numerical analysis programming language comprises at least a portion of an m-file.

15. A method for assembling a graphical block diagram from a syntax tree comprising:

receiving a syntax tree corresponding to functionality in a portion of executable code generated from a textual program in a numerical analysis programming language; and

automatically generating program instructions for generating a graphical program in a graphical programming language in response to the syntax tree, wherein the program instructions specify creation of the graphical program;

executing the program instructions to generate the graphical program, wherein the graphical program includes executable graphical program code, wherein the graphical program has functionality corresponding to that described by the syntax tree;

wherein the graphical program comprises a plurality of interconnected nodes, wherein the plurality of interconnected nodes visually indicates the functionality of the graphical program, wherein said generating the graphical program comprises generating graphical code, including translating elements in the syntax tree along with their associated parameters into corresponding graphical code versions and data types in the graphical programming language, thereby generating the plurality of interconnected nodes.

16. The method of claim 15 :

wherein the program instructions are represented in an XML format.

17. The method of claim 15 , wherein the numerical analysis programming language is loosely typed.

18. The method of claim 15 , wherein the textual program code in numerical analysis programming language comprises at least a portion of an m-file.

19. A non-transitory memory medium comprising program instructions for creating a graphical program, wherein the program instructions are executable to:

receive user input specifying textual program code in a numerical analysis programming language, wherein the textual program code performs a first procedure; and

automatically create a graphical program in a graphical programming language in response to the textual program code,

wherein the graphical program comprises a plurality of interconnected nodes that visually indicates functionality of the graphical program wherein said automatically creating the graphical program comprises generating graphical code, including translating functions in the textual program code along with their associated parameters into corresponding graphical code versions and data types in the graphical programming language, thereby generating the plurality of interconnected nodes;

wherein the graphical program in the graphical programming language is compilable to produce executable code;

wherein said automatically creating comprises creating the graphical program without user input specifying the nodes or connections between the nodes; and

wherein the graphical program performs the first procedure.

20. The non-transitory memory medium of claim 19 , wherein the graphical program is a graphical data flow program, wherein connections between nodes indicate that data produced by one node is used by another node.

21. The non-transitory memory medium of claim 19 , further comprising program instructions executable to:

display the graphical program on a display.

22. The non-transitory memory medium of claim 19 , wherein, in said automatically creating the graphical program, the program instructions are executable to:

automatically generate a graphical program generation program which is executable to create the graphical program; and

execute the graphical program generation program to create the graphical program.

23. The non-transitory memory medium of claim 22 , wherein the graphical program generation program is created in an XML format.

24. The non-transitory memory medium of claim 19 , wherein program instructions executable to automatically create a graphical program further comprise program instructions executable to:

automatically generate a syntax tree in response to the textual program code; and

automatically assemble the graphical program based on the syntax tree.

25. The non-transitory memory medium of claim 24 ,

wherein the syntax tree comprises nodes useable to create the graphical program;

wherein program instructions executable to automatically assemble the graphical program further comprise program instructions executable to:

search for unprocessed nodes in the syntax tree that do not have any child nodes;

search for unprocessed nodes in the syntax tree whose child nodes are all processed; and

determine if any nodes in the syntax tree are found to be unprocessed.

26. The non-transitory memory medium of claim 25 , further comprising program instructions executable to:

if no nodes in the syntax tree are found to be unprocessed, execute a post-processing routine, wherein the post-processing routine comprises creating a graphical program generation program.

27. The non-transitory memory medium of claim 25 , further comprising program instructions executable to:

if any nodes in the syntax tree are found to be unprocessed, select a node for processing;

determine a node-type for the selected node;

execute a code generation routine specific to the node-type for the selected node; and

mark the selected node as processed.

28. The non-transitory memory medium of claim 27 , wherein program instructions executable to execute a code generation routine further comprise program instructions executable to:

automatically generate graphical program code associated with the selected node, wherein a graphical block diagram is automatically assembled.

29. The non-transitory memory medium of claim 19 , wherein the numerical analysis programming language is loosely typed.

30. The non-transitory memory medium of claim 19 , wherein the textual program code in numerical analysis programming language comprises at least a portion of an m-file.

31. A computer system comprising:

a memory;

a processor; and

computer-readable code stored on said memory and processable by said processor for creating a graphical program in a graphical programming language, said computer-readable code including instructions for causing said processor to:

receive user input specifying textual program code in a numerical analysis programming language; and

automatically create a graphical program in the graphical programming language in response to receiving the textual program code,

wherein the graphical program comprises a plurality of interconnected nodes that visually indicates functionality of the graphical program, wherein said automatically creating the graphical program comprises generating graphical code, including translating functions in the textual program code along with their associated parameters into corresponding graphical code versions and data types in the graphical programming language, thereby generating the plurality of interconnected nodes;

wherein said automatically creating comprises creating the graphical program without user input specifying the nodes or connections between the nodes,

wherein the functionality of the graphical program corresponds to functionality specified in the textual program code.

32. The computer system of claim 31 , wherein the numerical analysis programming language is loosely typed.

33. The computer system of claim 31 , wherein the textual program code in numerical analysis programming language comprises at least a portion of an m-file.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2007
From: MACKLEM, GRANT V.; WENZEL, LOTHAR; GOSALIA, RISHI H.; JUHASZ, JAMES T.; DUNIA, RICARDO
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 018751/0050 →