Article · Wikipedia archive · Last revised Jun 16, 2026

CLIST

CLIST is a procedural programming language for Time Sharing Option (TSO) in SVS and 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. In its basic form, a CLIST program is a list of commands to be executed in strict sequence. OS/VS2 R3.6 (MVS) added If-Then-Else logic and loop constructs to CLIST. The term CLIST is also used for command lists written by users of NetView.

Last revised
Jun 16, 2026
Read time
≈ 2 min
Length
400 w
Citations
6
Source

CLIST (Command List; pronounced "C-List") is a procedural programming language for Time Sharing Option (TSO) in SVS and MVS systems. It originated in OS/3601 Release 20 and has assumed a secondary role since the availability of Rexx in TSO/E Version 2. In its basic form, a CLIST program is a list of commands to be executed in strict sequence. OS/VS2 R3.6 (MVS) added If-Then-Else logic and loop constructs to CLIST.2 The term CLIST is also used for command lists written by users of NetView.3

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 backgroundiiiii. 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
Footnotes

Footnotes

  1. Usually IKJEFT01
  2. by running JCL that executes a TSO terminal monitor programi (TMP)
  3. 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.
References

References

  1. "Command Procedure Statements" (PDF). IBM System/360 Operating System: Time Sharing Option - Command Language Reference (PDF). Systems Reference Library (Fifth ed.). IBM. April 1973. pp. 245–249. GC28-6732-3. Retrieved September 29, 2025.
  2. "Command Procedure" (PDF). OS/VS2 TSO - Command Language Reference (PDF). Systems (Fourth ed.). IBM. January 1976. pp. 271–324. GC28-0646-3. Retrieved September 29, 2025.
  3. "z/OS TSO/E CLISTs". z/OS 2.1.0. IBM. 14 June 2013. Retrieved 12 May 2016.