Automated programming system for machine creation of applications program source code from non-procedural terminal input
First Claim
1. A computer based system for the machine creation of application programs in high-level, programmer oriented language source code for use on a general purpose computer, comprising:
- (a) terminal means for user input and control of the computer based system;
(b) display means for display of user input and output from the computer based system;
(c) data processing means adapted to receive the user'"'"'s input and based on the user'"'"'s input create source code of the application program, said data processing means including;
(i) layout means for creating an overall procedural flow of the application program being created, the overall procedural flow being represented by interconnected symbols selected from a predetermined set of symbol types representative of data processing functions, decision branches and input and output operations, the layout means providing for user selection and interconnection of individual ones of the symbols so as to form the overall procedural flow of the application program being created, the layout means including means for displaying at the display means at least some of the symbols of the overall procedural flow as the overall procedural flow is being created by the user, the layout means storing in a memory location of the computer based system identifier means for identifying the symbol type of each of the symbols selected by the user and identifier means for uniquely identifying each of the symbols selected by the user and further storing pointer means for indicating the interconnection between the symbols selected by the user, the layout means further including interactive editor means for adding and deleting symbols from the overall procedural flow of the application program being created so as to enable modification of the overall procedural flow of the application program being created, the layout means further including logic error means for verifying that there are no isolated procedural flow paths, the error means providing error warnings if any procedural flow path errors are so detected,(ii) file definition means for defining data files, the organization of data within the data files, and the methods of referencing the data files which will be utilized by the application program being created,(iii) screen definition means for defining the format of each display presentation, the input/output characteristics of each display presentation, and the sources of the data to be used for each display presentation to be employed by the application program being created,(iv) report definition means for defining the format and content of each report to be produced by the application program being created, and the sources of the data to be used for each report to be produced by the application program being created,(v) procedure generation means for partitioning the procedural flow of the application program being created into procedural divisions of the high-level, programmer oriented language source code of the application program being created, said procedure generation means further defining how and where each data element output by the application program being created is developed; and
(vi) high-level programmer oriented language source code creation means which utilizes the procedural flow expressed in the layout means, the data files and structure defined in the file definition means, the display presentation format and input/output characteristics defined in the screen definition means, the report format and content definitions defined in the report definition means, and the procedure generation means, for creating a source language program for the application program being created, whereby said source language program will then be compiled by an appropriate compiler exactly as if it had been written by a human programmer to create a fully fashioned and complete object language program which can be executed on a general purpose computer in order to carry out the functions of the fully developed application program for the benefit of the user.
0 Assignments
0 Petitions
Accused Products
Abstract
An automated method and apparatus are used for creating data processing application programs in programmer oriented languages such as COBOL from atomic or fundamental program building blocks, i.e., individual programming language statements, based on information provided by the user at the terminal. Host/peripheral input/ output subroutines are selected from a library of existing I/O subroutines, based on the type of I/O indicated by the user; and, the application program can incorporate existing subroutines, tables, files, etc. so as to avoid having to create code which has already been created. The system also provides for a level of validity checks and interactive editing of the application program as it is being created at the terminal. A user may thus change some aspect of the application program, or correct a logic error which has been detected by the system, interactively without having to start over from scratch after compiling the source program to detect errors.
-
Citations
10 Claims
-
1. A computer based system for the machine creation of application programs in high-level, programmer oriented language source code for use on a general purpose computer, comprising:
-
(a) terminal means for user input and control of the computer based system; (b) display means for display of user input and output from the computer based system; (c) data processing means adapted to receive the user'"'"'s input and based on the user'"'"'s input create source code of the application program, said data processing means including; (i) layout means for creating an overall procedural flow of the application program being created, the overall procedural flow being represented by interconnected symbols selected from a predetermined set of symbol types representative of data processing functions, decision branches and input and output operations, the layout means providing for user selection and interconnection of individual ones of the symbols so as to form the overall procedural flow of the application program being created, the layout means including means for displaying at the display means at least some of the symbols of the overall procedural flow as the overall procedural flow is being created by the user, the layout means storing in a memory location of the computer based system identifier means for identifying the symbol type of each of the symbols selected by the user and identifier means for uniquely identifying each of the symbols selected by the user and further storing pointer means for indicating the interconnection between the symbols selected by the user, the layout means further including interactive editor means for adding and deleting symbols from the overall procedural flow of the application program being created so as to enable modification of the overall procedural flow of the application program being created, the layout means further including logic error means for verifying that there are no isolated procedural flow paths, the error means providing error warnings if any procedural flow path errors are so detected, (ii) file definition means for defining data files, the organization of data within the data files, and the methods of referencing the data files which will be utilized by the application program being created, (iii) screen definition means for defining the format of each display presentation, the input/output characteristics of each display presentation, and the sources of the data to be used for each display presentation to be employed by the application program being created, (iv) report definition means for defining the format and content of each report to be produced by the application program being created, and the sources of the data to be used for each report to be produced by the application program being created, (v) procedure generation means for partitioning the procedural flow of the application program being created into procedural divisions of the high-level, programmer oriented language source code of the application program being created, said procedure generation means further defining how and where each data element output by the application program being created is developed; and (vi) high-level programmer oriented language source code creation means which utilizes the procedural flow expressed in the layout means, the data files and structure defined in the file definition means, the display presentation format and input/output characteristics defined in the screen definition means, the report format and content definitions defined in the report definition means, and the procedure generation means, for creating a source language program for the application program being created, whereby said source language program will then be compiled by an appropriate compiler exactly as if it had been written by a human programmer to create a fully fashioned and complete object language program which can be executed on a general purpose computer in order to carry out the functions of the fully developed application program for the benefit of the user. - View Dependent Claims (2, 3, 4, 7, 8, 9)
-
-
5. An automated method for developing application programs from user input of non-procedural information describing the application via a terminal to create an application program for a general purpose computer, comprising:
-
(a) defining data processing functions and decision branches, input and output, and overall procedural flow governing the application program being created by use of interconnected graphic symbols input by the user at the terminal; (b) defining data files supporting the application program being created, the organization of the data files, and how the data will be referenced by data element name in the data files; (c) defining the format of display presentations providing a human interface to the application program being created, the input and output characteristics of the display presentations, and the source of the data to be used; (d) defining the format and content of reports produced by the application program being created and the source of data to be used in the reports; and (e) interactively modifying the above steps at the terminal as required; (f) defining the detailed procedural flow of the application program being created, including; (i) defining the criteria for taking a particular path at each of the decision branches in the application program being created, (ii) defining where to obtain the various data elements of the application program being created, (iii) defining the order of the input and output directives required by each of the processing functions of the application program being created; and (iv) defining how each data element assigned to the processing functions is to be valued; and (g) creating the source code of the application program being created in a procedural, human readable high-level programmer oriented language from the information provided by the preceding steps.
-
-
6. A computer based system for creating procedural, human readable, high-level programmer oriented language source code of a data processing application program, comprising:
-
(a) a plurality of information processing symbol types representative of data processing functions from which a user may choose to build procedural flow paths for an application program being created, each symbol type having associated therewith a unique identifier; (b) terminal means for user entry of the symbol types and display of same; and (c) data processing means adapted to receive graphical input symbols representative of the symbol type identifier entered by the user at the terminal means, including; (i) layout means for storing the symbol type identifier in a Layout Data file means, the layout means associating with each of the symbol types and storing a unique pointer value representative of the order in which the symbol types are entered by the user at the terminal means, the layout means further storing in an Ancestor file means the pointer value of a symbol to which control passes in each procedural flow path and the pointer value of the symbol causing transfer to that particular procedural flow path, said layout means including means for validating the backward and forward pointers of each symbol type in the Layout file means to verify all the procedural flow paths are complete in a forward sense, said layout means including means for verifying the pointers of the Ancestor file means to verify there are no isolated procedural flow paths, said layout means including means for interactively editing the procedural flow paths; (ii) means for gathering information regarding files, screens, and reports of the application program being created; (iii) means for asking of the user additional information respecting the procedural flow paths and the symbol types therein; and (iv) means for automatically constructing application program source code based on the information so obtained.
-
-
10. A computer based system for the machine creation of application programs in high-level, programmer oriented language source code for use on a general purpose computer, comprising:
-
(a) terminal means for user input and control of the computer based system; (b) display means for display of user input and output from the computer based system; (c) data processing means adapted to receive the user'"'"'s input and based on the user'"'"'s input create source code of the application program being created, the data processing means including; (i) layout means for creating an overall procedural flow of the application program being created, the overall procedural flow being represented by interconnected symbols selected from a predetermined set of symbol types representative of data processing functions, decision branches and input and output operations, the layout means providing for user selection and interconnection of individual ones of the symbols so as to form the overall procedural flow of the application program being created, the layout means including means for displaying at the display means at least some of the symbols of the overall procedural flow as the overall procedural flow is being created by the user, the layout means storing in a memory location of the computer based system identifier means for identifying the symbol type of each of the symbols selected by the user and identifier means for uniquely identifying each of the symbols selected by the user and further storing pointer means for indicating the interconnection between the symbols selected by the user, the layout means further including interactive editor means for adding and deleting symbols from the overall procedural flow of the application program being created so as to enable modification of the overall procedural flow of the application program being created, the layout means further including logic error means for verifying that there are no isolated procedural flow paths, the error means displaying error warnings at the display means if any procedural flow path errors are so detected, (ii) file definition means for defining data files which will be utilized by the application program being created, the file definition means including prompt means for prompting the user to specify whether each of the data files present in the overall procedural flow of the application program being created is an existing file or a new file and for further prompting the user to define the organization of the data within the data files and the methods of referencing the data files, (iii) screen definition means for defining each display presentation utilized by the overall procedural flow of the application program being created, the screen definition means including prompt means for prompting the user to specify whether each of the display presentations present in the overall procedural flow of the application program being created is an existing display presentation or a new display presentation and for further prompting the user to define the format of the display presentations, the input/output characteristics and the sources of data to be used for each display presentation, (iv) report definition means for defining each report to be produced by the overall procedural flow of the application program being created, the report definition means including prompt means for prompting the user to specify for each report present in the overall procedural flow of the application program being created whether the report is an existing report or a new report and for further prompting the user to define the format and content of each report and the sources of the data to be used for each report, (v) procedure generation means for partitioning the procedural flow of the application program being created into procedural divisions of the high-level, programmer oriented language source code of the application program being created, the procedure generation means further defining how and where each data element output by the application program being created is developed;
the procedure generation means including;(a) path decision means for defining the criteria for taking a particular procedural flow path at each of the decision branches in the overall procedural flow of the application program being created, the path decision means including means for selecting a decision branch whose criteria is to be defined and for indicating to the user the selected decision branch, the path decision means including prompt means for prompting the user to select the particular procedural flow path of the selected decision branch whose criteria is to be defined and for prompting the user to define the criteria for taking the selected procedural flow path, the path decision means further including interactive editor means for changing, adding and deleting any of the criteria for taking a particular procedural flow path at any of the decision branches; (b) first data element derivation means for specifying how to derive data elements which are to be output by the application program being created, the first data element derivation means including prompt means for prompting the user to define for each output in the overall procedural flow of the application program being created in which data processing functions the data elements will be defined and further prompting the user to define an access key to each of the data files and the method of processing each of the data files supporting the data processing functions wherein the data elements are defined; (c) data input/output directive means for defining input/output operations occurring in the overall procedural flow of the application program being created, the data input/output directive means including means for prompting the user to define the sequence of multiple data inputs if occurring for a particular data processing function, the sequence of input and output in a display presentation for a particular data processing function which has both an input and an output, and whether a data file which is to be output in a particular data processing function is to be written for the first time, overwritten after modifications or have one or more records deleted; and (d) second data element derivation means including means for prompting the user to specify how to compute a value for each data element assigned to a particular data processing function; (vi) high-level, programmer oriented language source code creation means which utilizes the procedural flow expressed in the layout means, the data files defined in the file definition means, the display presentations defined in the screen definition means, the reports defined in the report definition means and the procedure generation means for creating a source language program for the application program being created, whereby the source language program will then be compiled by an appropriate compiler as if it had been written by a human programmer to create a fully fashioned and complete object language program which can be executed on a general purpose computer in order to carry out the functions of the fully developed application program for the benefit of the user.
-
Specification