CLIST


CLIST is a procedural programming language for TSO in MVS systems. It originated in OS/360 Release 20 and has assumed a secondary role since the availability of Rexx in TSO/E Version 2. The term CLIST is also used for command lists written by users of NetView.
In its basic form, a CLIST program can take the form of a simple list of commands to be executed in strict sequence. However, CLIST also features If-Then-Else logic as well as loop constructs.
CLIST is an interpreted language. That is, the computer must translate a CLIST every time the program is executed. CLISTs therefore tend to be slower than programs written in compiled languages such as COBOL, FORTRAN, or PL/1.
CLIST can read/write MVS files and read/write from/to a TSO terminal. It can read parameters from the caller and also features a function to hold global variables and pass them between CLISTs. A CLIST can also call an MVS application program. CLISTs can be run in background. TSO I/O screens and menus using ISPF dialog services can be displayed by CLISTs.
Compare the function of CLIST with that provided by REXX.

Example programs

PROC 0
WRITE HELLO WORLD!
Adding If-Then-Else logic:
line highlight="10">
/********************************************************************/
/* MULTI-LINGUAL "HELLO WORLD" PROGRAM. */
/* */
/* THIS CLIST, STORED AS USERID.TSO.CLIST, CAN BE INVOKED */
/* FROM THE ISPF COMMAND LINE AS SHOWN IN THE FOLLOWING EXAMPLE: */
/* */
/* COMMAND > TSO TEST SPANISH */
/* */
/********************************************************************/
PROC 1 LANGUAGE
IF &LANGUAGE = SPANISH THEN +
WRITE HOLA, MUNDO
ELSE IF &LANGUAGE = FRENCH THEN +
WRITE BONJOUR, MONDE
ELSE +
WRITE HELLO, WORLD
EXIT

Footnotes