Polymorphic dataflow block diagram system and method for programming a computer
First Claim
1. In a computer system having a central processing unit, a memory for storing programs and data, and a display;
- a dataflow programming subsystem, comprising;
a library of function icons, each representing a mathematical operation to be performed on specified input data to generate output data;
wherein a first multiplicity of said function icons are polymorphic with respect to numeric representation, and wherein a second multiplicity of said function icons, comprising a subset of said first multiplicity of function icons, are structurally polymorphic with respect to data aggregation;
dataflow diagram generating means for interconnecting a specified plurality of said function icons, and for connecting specified ones of said plurality of function icons to specified input data sources that provide respective input data having a respective specified numeric representation and data structure, to generate a dataflow diagram representing mathematical operations to be performed on said input data so as to generate output data;
said dataflow diagram generating means including polymorphic interpreting means for assigning, prior to execution of said dataflow diagram, specific mathematical operations with respect to numeric representation and data structure to each function icon in said dataflow diagram in accordance with numeric representation and data structure of the input data to said each function icon, such that;
(A) each function icon in said dataflow diagram that is polymorphic with respect to numeric representation is assigned an integer mathematical operation when all input data for said each function icon are integers;
(B) each function icon in said dataflow diagram that is polymorphic with respect to data aggregation is assigned, when said input data to said each function icon in said dataflow diagram comprises arrays of input data, a mathematical operation to be performed on an element by element basis so as to generate an array of output data; and
(C) each function icon in said dataflow diagram that is polymorphic with respect to data aggregation is assigned, when said input data to said each function icon comprises a scalar value and an array of input data, a mathematical operation to be performed on each element of said array of input data in conjunction with said scalar value so as to generate an array of output data; and
dataflow diagram executing means for executing said dataflow diagram by performing said specific mathematical operations assigned to said plurality of icons in said dataflow diagram;
front panel generating means for generating a front panel that is displayed on said computer system'"'"'s display, said front panel having controls that generate control values to be used as said input data for specified ones of said function icons in said dataflow diagram; and
said dataflow diagram executing means including means for displaying said front panel and for receiving user commands specifying the control values to be generated by said front panel during execution of said dataflow diagram.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system is programmed by a user to perform dataflow computations by constructing a dataflow block diagram that utilizes function icons. At least a subset of the function icons are polymorphic with respect to data type and with respect to data aggregation. A polymorphic function icon is executed by performing a single mathematical operation when its inputs are scalars, while the same icon is executed on an element when its inputs are arrays or a scalar and an array. With cluster inputs, the polymorphic function icon is executed on a component by component basis. Output types of polymorphic function icons are determined by their input types prior to executing the diagram. The system automatically constructs a connection diagram consisting of an icon with connection points that are labelled with the names of associated front panel controls and indicators. A front panel control can be hidden to make the associated control value a constant. To facilitate use of icons, a two dimensional palette of user constructed icons is automatically constructed from a directory of user constructed icons. Further, the name of the virtual instrument associated with an icon is displayed whenever the mouse cursor is proximate the icon. The system also generates a hierarchy diagram in which icons are arranged such that each icon has lines connected to all the icons it uses in its block diagram. A dataflow diagram can be locked to prevent modification thereof while still allowing the dataflow diagram to be executed.
-
Citations
15 Claims
-
1. In a computer system having a central processing unit, a memory for storing programs and data, and a display;
- a dataflow programming subsystem, comprising;
a library of function icons, each representing a mathematical operation to be performed on specified input data to generate output data;
wherein a first multiplicity of said function icons are polymorphic with respect to numeric representation, and wherein a second multiplicity of said function icons, comprising a subset of said first multiplicity of function icons, are structurally polymorphic with respect to data aggregation;dataflow diagram generating means for interconnecting a specified plurality of said function icons, and for connecting specified ones of said plurality of function icons to specified input data sources that provide respective input data having a respective specified numeric representation and data structure, to generate a dataflow diagram representing mathematical operations to be performed on said input data so as to generate output data; said dataflow diagram generating means including polymorphic interpreting means for assigning, prior to execution of said dataflow diagram, specific mathematical operations with respect to numeric representation and data structure to each function icon in said dataflow diagram in accordance with numeric representation and data structure of the input data to said each function icon, such that; (A) each function icon in said dataflow diagram that is polymorphic with respect to numeric representation is assigned an integer mathematical operation when all input data for said each function icon are integers; (B) each function icon in said dataflow diagram that is polymorphic with respect to data aggregation is assigned, when said input data to said each function icon in said dataflow diagram comprises arrays of input data, a mathematical operation to be performed on an element by element basis so as to generate an array of output data; and (C) each function icon in said dataflow diagram that is polymorphic with respect to data aggregation is assigned, when said input data to said each function icon comprises a scalar value and an array of input data, a mathematical operation to be performed on each element of said array of input data in conjunction with said scalar value so as to generate an array of output data; and dataflow diagram executing means for executing said dataflow diagram by performing said specific mathematical operations assigned to said plurality of icons in said dataflow diagram; front panel generating means for generating a front panel that is displayed on said computer system'"'"'s display, said front panel having controls that generate control values to be used as said input data for specified ones of said function icons in said dataflow diagram; and said dataflow diagram executing means including means for displaying said front panel and for receiving user commands specifying the control values to be generated by said front panel during execution of said dataflow diagram. - View Dependent Claims (2, 3, 4)
- a dataflow programming subsystem, comprising;
-
5. In a computer system having a central processing unit, a memory for storing programs and data, and a display;
- a dataflow programming subsystem, comprising;
a library of function icons, each representing a mathematical operation to be performed on specified input data to generate output data;
wherein a first multiplicity of said function icons are polymorphic with respect to numeric representation, and wherein a second multiplicity of said function icons, comprising a subset of said first multiplicity of function icons, are structurally polymorphic with respect to data aggregation;virtual instrument generating means for generating and storing a multiplicity of virtual instruments, each virtual instrument including a respective dataflow diagram representing mathematical operations to be performed on specified input data to generate specified output data, and each of a subset of said virtual instruments including a respective virtual front panel having controls that generate control values to be used as input data to the dataflow diagram of one of said subset of virtual instruments; said virtual instrument generating means including; dataflow diagram generating means for interconnecting specified ones of said function icons and said virtual instruments, and for connecting specified ones of said plurality of function icons and virtual instruments to specified input data sources that provide respective input data having a respective specified numeric representation and data structure, to generate said dataflow diagram for any specified one of said multiplicity of virtual instruments;
said generated dataflow diagram representing mathematical operations to be performed on said respective input data so as to generate respective output data; andfront panel generating means for generating a respective front panel for any specified one of said multiplicity of virtual instruments, said respective front panel having controls responsive to user commands that generate control values to be used as said input data for a respective one of said dataflow diagrams; and virtual instrument executing means for executing the respective dataflow diagram for a specified one of said multiplicity of virtual instruments by displaying said respective front panel, if any, for said specified one virtual instrument, receiving user commands specifying said control values to be generated by said front panel during execution of said respective dataflow diagram, and performing said mathematical operations represented by said dataflow diagram using said generated control values as input data. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
- a dataflow programming subsystem, comprising;
Specification