CLIST explained

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/360[1] 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 (like a DOS batch file (*.bat) file). 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 background. 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

Notes and References

  1. Book: IBM System/360 Operating System: Time Sharing Option - Command Language Reference . GC28-6732-3 . April 1973 . Fifth . Command Procedure Statements . http://bitsavers.org/pdf/ibm/360/os/tso/GC28-6732-3_TSO_Command_Language_Ref_Jul72.pdf#page=253 . 245-249 . Systems Reference Library . . September 29, 2025 .
  2. Book: OS/VS2 TSO - Command Language Reference . GC28-0646-3 . January 1976 . Fourth . Command Procedure . http://bitsavers.org/pdf/ibm/370/OS_VS2/Release_3.7_1976/GC28-0646-3_OS_VS2_TSO_Command_Language_Reference_Rel_3.7_Jan76.pdf#page=271 . 271-324 . Systems . . September 29, 2025 .
  3. Web site: z/OS TSO/E CLISTs . IBM . z/OS 2.1.0 . 14 June 2013 . 12 May 2016.