CLIST

{{Short description|Programming language}}

{{one source |date=April 2024}}

CLIST (Command List) (pronounced "C-List") 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.{{cite web | url=https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ikjb800/toc.htm | title=z/OS TSO/E CLISTs | publisher=IBM | work=z/OS 2.1.0 | date=14 June 2013 | accessdate=12 May 2016}}

In its basic form, a CLIST program (or "CLIST" for short) can take the form of a simple list of commands to be executed in strict sequence (like a DOS batch file (*.bat) file). 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. (A program written in a compiled language is translated once to create a "load module" or executable.)

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 (written in COBOL or PL/I, for example). CLISTs can be run in background{{efn-lr|by running JCL that executes a TSO terminal monitor program{{efn-lr|Usually IKJEFT01}} (TMP)}}{{efn-lr|This capability was added by the program product Time Sharing Option/Extensions (TSO/E), which is a standard part of OS/390 and z/OS.}}. CLISTs can display TSO I/O screens and menus by using ISPF dialog services.

Compare the function of CLIST with that provided by REXX.

Example programs

PROC 0

WRITE HELLO WORLD!

Adding If-Then-Else logic:

/********************************************************************/

/* MULTI-LINGUAL "HELLO WORLD" PROGRAM. */

/* */

/* THIS CLIST, STORED AS USERID.TSO.CLIST(TEST), 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

{{efn-lr|Here PROC is treated as a separate routine.}}

See also

Footnotes

{{notelist-lr}}

References