DESL


DESL Home | Website Outline | Commands | Examples | Download | Contacts

What is this DESL software and how is it useful?


DESL is a file-oriented, name driven collection of Fortran code which can be used to manipulate, analyze and plot data through the use of a command line user interface.

Each of its attributes is important to the overall efficiency of DESL operations.

DESL is File Oriented. The basic data entity typically used by DESL is the Standard Interface File or SIF. A SIF file is the binary internal file format used by DESL for efficient data manipulation. Other ascii forms can be imported/exported or translated to/from the SIF format. This is the means by which a user's non-SIF file can be used within DESL

Typically, each of the DESL functions read one or more files, operate on the data from each file or the collective set of their data, depending on the function being invoked, and create none, one or more new files containing a corresponding set of possibly modified data.

Each stage of a DESL script performs this type of activity. Collectively, the set of serial operations, can accomplish a customized user task. This is referred to as the "building block" nature of DESL.

DESL is NAME Driven. The SIF files being operated on internally by the DESL functions are, by definition, structured such that data values are referenceable by name; access to their data values can be name driven. In fact, this is the key to the DESL code's flexibility. Knowing where a variable name is in a SIF NAME record immediately informs a program where the corresponding data value is for that variable.

DESL uses a Command Line Interface. Although graphical user interfaces (GUIs) are presently very much in vogue, they are most often geared to an immediate, event-driven type application. Additionally, when a GUI is used as a front end for an otherwise command line application, some of the application's natural control is usually given up in the interest of keeping the GUI relatively simple to use and create.

Since DESL is naturally a command line application it has been decided that the production of a GUI front end is a lower priority activity. This way a concentration on the enhancemet of DESL can be given top billing.

The command line interface DESL employs, along with its control structures, allows a batch task to be set up and carried out. Batch tasks are seldom emphasized these days, but in the real world there are many needs for this mode of using an application. DESL can create, for example, 1000 plots as easily as it can create 1 plot.

So, the features emphasized above are the keys to the usefulness of DESL. DESL is a unique product in that it provides basic data engineering capabilities in a relatively easy to use package.


The DESL command line


DESL is operated as a line-oriented scripting language. Interactively or in a file of commands and, possibly, commands' options and option arguments, DESL is directed as to what to do and how to do it.


DESL schematic example

A schematic example of an instance of a DESL command and option/argument list is shown below in this excerpt from a longer hypothetical input sequence :

DESL command
option1 argument1
option2 argument1 argument2 argument3
option3
option4 argument1 option5 argument1
go

The go option ends the command input - ends the collection of options and options+arguments - and tells DESL to invoke the function named by the command and to report the results.

The entry of a line containing the command's name or abbreviation signals to DESL to expect more input particular to the command entered until the time when input is ended (at "go").

ALL of the input to DESL is in a free form stype, having individual entities separated from eachother by at least one blank space. When a command (and arguments) is to be processed, all blank-delimited input encountered is gathered and preliminarily parsed to verify its syntax.

If the syntax of all of the input - options and their respective arguments - is judged to be correct, then the input is passed to the function's processor for a final determination of completeness and legality and then for its use. If there is a problem, the syntax error is reported and the user is returned to the DESL command prompt.

Below is a particular example of the use of the DESL fit command with the DESL prompts being in the bold font and, as above, the option names being in blue :

DESL> fit
FIT> files run10
FIT> names alpha cl cd order 3 curve poly
FIT> values -5 to 25 by 1
FIT> go
DESL> stop

At the DESL command-level prompt (DESL>) the system recognizes that the intent of the user is to cause the "fit" function to be invoked.

The FIT> prompt is then issued and DESL waits for one or more lines of blank-delimited input in the form of options and option arguments to fully describe the user's intentions.

Upon encountering the option go DESL is informed that all input, as far as the user is concerned, has been completed and that it should now go perform the fit operation as described.

If any run time problems are encountered they will be reported and appropriate action(s) taken.

Once the FIT has been completed, successfully or unsuccessfully, DESL returns to the command level prompt waiting for the next command. In this example, the stop command was entered, indicating that the user is ending this DESL session.


The current repertoire of DESL Commands

Please also see the more indepth discussion of the DESL commands.

DESL Command Command Intent
autosys Toggle direct system command capability.

DESL has the ability to execute DOS commands without having to exit. If the autosys state is on then the system DESL command does not have to be issued in order for DESL to attempt to recognize the entered command as a DOS command.

cleanup Remove tagged files

As files are created in a DESL session they are tagged as those which will or will not be automatically removed at the issuance of the cleanup command. The cleanup command is, therefore, a handy way of recovering file space as temporary files are deleted as a DESL session progresses.

clear Clear the screen
continue Restart a DESL session from named hold file

A DESL session can be halted and saved at any time via the hold command. All of its states will also be saved such that at the issuance of the continue command the DESL session held (assuming the files are still available) will effectively be right back where it was when the hold command had originally been issued.

copy Copy one file to a new file

Read SIF file(s) and create new SIF file(s), possibly consolidating the incoming files' variables, filtering the incoming files based on specified conditions, doing statistical calculations, etc.

create Create an ASCII file inline
diff Difference between two SIF files
do Looping control
echo Explicit setting or toggle system echoing
endcreate Ends the creation of an inline ASCII file
edit Edit an ASCII file(s) with DESL line editor
editor Define the default ASCII file text editor
else Conditional branch point
elseif Conditional branch point
endif Conditional branch point
enddo Looping control
endm End a macro definition
endw End a while loop
equation Execute Fortran-like equations

The user can produce and execute Fortran-like code on each qualifying incoming SIF file record. Many of the standard Fortran functionalities are available with additional built-in integration and differentiation capability.

extra Build your own DESL-compatible stand-alone executable using the Compaq Fortran compiler, the supplied .OBJ file and your Fortran code.

Use the ViGYAN consulting service to provide the compilation/linking means.

extremes Determine and report variable(s) min's/max's in file(s)
files List current new files which have been produced in this session
filter Apply filters to data in file(s)
fit Curve fitting in file(s)

Nth order least squares and piecewise polynomial fitting is possible. Analytic differentiation is also possible.

hold Suspend DESL session into named file then stop (see "continue")

A DESL session can be halted and saved at any time via the hold command. All of its states will also be saved such that at the issuance of the continue command the DESL session held (assuming the files are still available) will effectively be right back where it was when the hold command had originally been issued.

holdn Suspend DESL session into named file (see "continue")
if Conditional branch point
input Use an alternate file as DESL input

Normally, DESL takes its commands interactively. However, a file of DESL commands and the commands' options, can be presented to DESL for execution by naming such a file with the input command.

learn Determine "best set" of coefficients for polynomial data fit

A user-specified group of possible polynomial independent variable names can be used to determine the resulting polynomial coefficients such that a data set can be fit with the least resulting error.

list Define a set of attributes for later application

A list of items is a structure which DESL can use in conjunction with the do command to define the looping variables (constants or variables) to use.

log Toggle system logging
macrolib Load system macro(s)

DESL macros are sets of collections of DESL commands which can be effectively called from the DESL command line. A DESL macro can contain arguments which can be supplied at the time the macro is invoked. Nested macros are possible.

merge Combine files laterally

Akin to logically shuffling a deck of cards, the merge command will join the corresponding records from two or more files into a single new file.

overstore Toggle state of system file overwriting ability

Noamally, DESL will not allow a named new file to be created if that named file already exists. The overstore command can be set such that DESL can overstore files.

page Define the default output page size for various forms of output
password Specify the DESL password
path Define alternate lower-priority file paths

By default, DESL look in the current directory for the files one of its commands is trying to open for reading. With the path command up to 10 alternate, lower priority locations can also be specified.

print Print information from file(s) to output

The print command allows the variable names values from a file to be listed in tabular form in one of several formats.

pubplot Produce PostScript publication-quality graphical output

The grand daddy of all DESL commands, pubplot allows the user to generate a PostScript file which can contain one or more of a wide variety of plot types and styles. Virtually all aspects of the plots are controllable, giving the user much control and flexibility as to how their plots will appear. X-Y plots, contour and surface plots are possible, with X-Y plots being most mature and capable.

PostScript file results can be viewed directly via the use of any number of previewers. GhostView/GhostScript ( freely available software) is very capable at this task. Publication quality plots are the norm.

record Toggle user input logging
register Perform DESL register actions

DESL provides 10 user Name registers and 10 user Value registers which can be used for storing and/or passing numeric or string information, respectively, between DESL commands.

say Echo line to output
saveinput Copy previous user input to file
sifstats Display statistical information for SIF file(s)

This function provides a good way to view the structure of a SIF file.

sleep Halt DESL action for specified time
spawn Generate multiple file(s) from file(s) based on data

From one incoming file, based on splitting criteria, break the file into one or more smaller files.

stack Combine files longitudinally

Akin to logically stacking two or more deck of cards, the stack command will append the corresponding records from two or more files into a single new file.

statistics A function under construction!

Calculate various statistical parameters

status Display DESL status information
stop End DESL and use DESLEXIT file if present
stopn End DESL and do not use DESLEXIT file if present
system Execute a command outside of DESL

The system command, followed by a string will attempt to have the sring executed in the DOS system.

tally Display categorized file parameter information

An incoming file can be logically parsed such that records falling into specified categories can be counted and reported.

time Display current system date/time
translate Translate between file formats

The translate command provides the means whereby DESL is able to go to/from SIF files from/to, respectively, other valid file formats. The tab-separated ASCII format, as can be exported from Excel and imported to Excel is one of these forms. The file structure all other commands need to see in their files is the SIF format.

until Conditional branch point
while Conditional branch point
whilelimit Limit on while loop transversals

As mentioned in the above table, an .OBJ stub file is provided such that user code can be compiled with Compaq Visual Fortran (CVF) and linked with this file to yield a new executble which is a stand-alone executable application. This stand-alone executable uses a simple yet powerful interface to the SIF data files such that variables are extracted from and installed in a dynamic data set by name. The executable can then be used in a manner similar to the DESL functions : with command-line options to specify the SIF files to read and write and an optional setup file to process.

For users without the CVF resource a consultation service is available which can provide the means to receive user source code, repair obvious faults and do the compile and link and return an executable.

With this ability, major applications can be produced which can process SIF files to accomplish many goals.


DESL Home | Website Outline | Commands | Examples | Download | Contacts


Contact the DESL manager

ViGYAN, Inc.
30 Research Drive
Hampton, VA 23666
Voice: (757) 865-1400
Toll Free: (800) 288-3998
FAX: (757) 865-8177

© 1999 ViGYAN, Inc.