CLIST
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.[1]
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 (by running JCL which executes the TSO control program (IKJEFT01)). 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:
/********************************************************************/ /* 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[lower-roman 1] 1 LANGUAGE IF &LANGUAGE = SPANISH THEN + WRITE HOLA, MUNDO ELSE IF &LANGUAGE = FRENCH THEN + WRITE BONJOUR, MONDE ELSE + WRITE HELLO, WORLD EXIT
See also
Footnotes
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
<templatestyles src="Asbox/styles.css"></templatestyles>
<templatestyles src="Asbox/styles.css"></templatestyles>
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
Cite error: <ref>
tags exist for a group named "lower-roman", but no corresponding <references group="lower-roman"/>
tag was found, or a closing </ref>
is missing