IP Library Granted Patent US 8,539,443
Granted Patent B2
US 8,539,443 · App. 12/119,578 · Granted Sep 17, 2013

Edit time analyzer in a loosely typed textual language

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 8,539,443
App. No.
12/119,578
Granted
Sep 17, 2013
Kind
B2
Abstract

Analyzing code written in a loosely typed language. User input specifying code for a script may be received. The specified code may be analyzed. More specifically, one or more code portions referenced by the specified code may be determined. Properties of symbols of the specified code and the one or more code portions may also be determined. Additionally, the specified code may be analyzed using the determined properties to determine errors in the specified code. Accordingly, one or more errors may be graphically indicated based on said analyzing. Receiving the user input, analyzing the specified code, and graphically indicating the one or more errors may be performed at edit time.

Claims (40)

1. A method for analyzing code written in a loosely typed language, comprising:

receiving user input entering a first portion of a script in a node in a graphical program, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program, wherein the first portion of the script is written in the loosely typed language;

hierarchically determining, at edit time, properties of symbols, and data type and dimensionality of variables, in the first portion and one or more referenced files which call or are called by the first portion, wherein the script is stored in a file that is separate from the one or more referenced files, wherein said hierarchically determining comprises separately analyzing the first portion of the script and the one or more referenced files at edit time, and wherein said separately analyzing comprises:

automatically inferring data type and dimensionality of one or more variables in the script or the one or more referenced files at edit time;

determining one or more errors in the first portion based on said hierarchically determining, wherein said determining the one or more errors is based on the properties of symbols, and data type and dimensionality of variables, in the one or more referenced files; and

displaying the one or more errors determined based on the hierarchically determined properties of symbols, and data type and dimensionality of variable, in the first portion and the one or more referenced files during edit time of the script, wherein the one or more errors are displayed on a single screen of a display device.

2. The method of claim 1 , wherein said receiving user input, said hierarchically determining properties, said determining one or more errors in the first portion based on the determining, and said displaying the one or more errors are performed interactively.

3. The method of claim 1 , wherein the first portion of the script comprises a single line of code.

4. The method of claim 1 , wherein the properties of the symbols comprise types of the symbols.

5. The method of claim 4 , wherein the types of the symbols comprise functions, constants, and/or data container types.

6. The method of claim 1 , wherein one or more of the symbols comprise functions, and wherein said determining properties of the symbols comprises determining any side effects of the functions other than their respective outputs.

7. The method of claim 1 , wherein said determining the properties of the symbols comprises, for each symbol:

determining numbers of required inputs or outputs as well as types for the required inputs or outputs; and

determining whether calls to the symbol match the numbers and types of the required inputs or outputs.

8. A non-transitory memory medium storing program instructions for analyzing code written in a loosely typed language, wherein the program instructions are executable to:

receive user input specifying code for a script in a node in a graphical program, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program,;

analyze the specified code, wherein said analyzing comprises:

determining one or more code portions referenced by the specified code, wherein the one or more code portions are stored in files separate from the script;

determining, at edit time, properties of symbols, and data type and dimensionality of variables, of the specified code and the one or more code portions, wherein said determining comprises separately analyzing the code for the script and the files separate from the script, and wherein said separately analyzing comprises:

automatically inferring data type and dimensionality of one or more variables in the script or the files separate from the script at edit time; and

analyzing the specified code using the determined properties of symbols, and data type and dimensionality of variables, to determine errors in the specified code, wherein said analyzing is based on the properties of symbols, and data type and dimensionality of variables, of the one or more code portions; and

graphically indicate one or more errors based on said analyzing, wherein the one or more errors are displayed on a single screen of a display device;

wherein said receiving user input, said analyzing the specified code, and said graphically indicating the one or more errors is performed at edit time of the script.

9. The non-transitory memory medium of claim 8 , wherein said receiving user input, said analyzing, and said graphically indicating are performed interactively.

10. The non-transitory memory medium of claim 8 , wherein said receiving user input specifying the code comprises receiving user input specifying a single line of code.

11. The non-transitory memory medium of claim 8 , wherein the properties of the symbols comprise types of the symbols.

12. The non-transitory memory medium of claim 11 , wherein the types of the symbols comprise functions, constants, and/or data container types.

13. The non-transitory memory medium of claim 8 , wherein one or more of the symbols comprise functions, and wherein said determining properties of the symbols comprises determining any side effects of the functions other than their respective outputs.

14. The non-transitory memory medium of claim 8 , wherein said determining the properties of the symbols comprises, for each symbol:

determining numbers of required inputs or outputs as well as types for the required inputs or outputs; and

determining whether calls to the symbol match the numbers and types of the required inputs or outputs.

15. A non-transitory memory medium storing program instructions for analyzing code written in a loosely typed language, wherein the program instructions are executable to:

receive user input specifying code for a script in a node in a graphical program, wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program;

determine one or more code portions referenced by the specified code, wherein the one or more code portions are stored in files separate from the script;

determine, at edit time, properties of symbols, and data type and dimensionality of variables, of the specified code and the one or more code portions, wherein said determining comprises separately analyzing the code for the script and the files separate from the script;

analyze the properties of the symbols, and data type and dimensionality of variables, of the specified code and the one or more code portions to determine semantics of the script, wherein said analyzing is based on the properties of symbols, and data type and dimensionality of variables, of the one or more code portions, wherein to analyze the properties of the symbols, the program instructions are executable to:

automatically infer data type and dimensionality of one or more variables in the script or the files separate from the script at edit time; and

graphically indicate the semantics of the script on a display during edit time of the script, wherein the one or more errors are displayed on a single screen of a display device.

16. The non-transitory memory medium of claim 15 , wherein said receiving user input and said graphically indicating are performed interactively.

17. The non-transitory memory medium of claim 15 , wherein said receiving user input specifying the code comprises receiving user input specifying a single line of code.

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 May 13, 2008
From: GOSALIA, RISHI H.; ATTAS, JESSE M.; MARKER, BRYAN A.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 020938/0393 →