next up previous contents
Next: Data analysis and display Up: Data analysis software Previous: Data manipulation libraries   Contents


The user interface for off-line programs

The user interface libraries provide an embedded interactive shell in the application programs - the user interface is part of the compiled binary code of the application programs. In an interactive session, the user is presented with a list of keywords corresponding to the parameters which control the behavior of the application. The user can set/reset, save, load and transfer values from one keyword to another, etc. in the interactive shell. Each keyword can potentially take multiple values which can be supplied as a set of comma-separate values. Numerical values can be expressed as arbitrary mathematical expressions which are parsed at run-time.

The keywords presented to the user are detected automatically at runtime. Since the code for the user interface is part of the binary executable file, this ensures that the interface presented to the user is always consistent with the functionality of the program. This eliminates the possibility of the application program and the user interface going out of synchronization, which is, in the long term, a very desirable property. The user interface can (and frequently does!) go out of synchronization with the functionality of the programs, when the user interface depends on external files to determine the keywords; these must be independently maintained and evolved as the application code evolves.

The input data file name is usually specified via the 'in' keyword while the output file name by the 'out' keyword. By default, the input is read from the standard input and output written to the standard output. If the input file name begins with the ' <' character, the rest of the file name is treated as a command of the underlying operating system. The output of this command becomes the input of the application. Similarly if the output file name begins with the '|' character, the rest of the file name is treated as a command which reads the output of the parent application. These features are used to supply the output of one program to another.

The applications can also be started in the non-interactive mode by supplying ``help = noprompt'' as one of the command-line options. Other keywords of the application can also be set via ``key=<val0>,<val1>,<val2>,...'' styled command-line options. This is often useful in setting up a UNIX pipe consisting of a number of programs or when using these off-line programs as part of a shell script. On-line help is also available via the `` explain'' command in the interactive sessions and via the `` help=explain'' as one of the the command-line options in non-interactive sessions.

The user interface can be customized to a large extent and can also be used to effectively generate specialized versions of existing applications (see Appendix A). These can be generated by writing the .def and .config files for the applications (see the explanation for the environment variables GCONF and GDEFAULTS in Section A.2).


next up previous contents
Next: Data analysis and display Up: Data analysis software Previous: Data manipulation libraries   Contents
Sanjay Bhatnagar 2005-07-07