Control Language

Although CL is a scripting language for system administration, it is used mainly to create compiled programs.

The use of interpreted CL scripts through the SBMDBJOB command [2] is in fact extremely limited.

While thousands of commands were written by IBM developers to perform system-level tasks like compiling programs, backing up data, changing system configurations, displaying system object details, or deleting them, commands are not limited to systems-level concerns and can be drafted for user applications as well.

The BNF for a much simplified CL command syntax would be defined as follows: The items above that end in -name follow object naming conventions which, generally speaking, means the name starts with a letter and can be up to ten characters in length.

The system would then display a screen describing the type of input required and an available list of allowable values.

New commands can be created to call non-system programs and they will work exactly like the inbuilt variety.

All help screens use panel group objects (*PNLGRP) and these can be created using the UIM language described in the IBM AS/400 Application Display Programming manual.

There are 2,262 built-in IBM commands contained in V7R3,[3] but finding them isn't all that hard because of several designs of the system that make life easier.

Verbs like change are always rendered as CHG, display as DSP, work as WRK, create as CRT, etc.

Subjects like program are always PGM, user is USR, module is MOD, server is SVR, etc.

With the introduction of the ILE programming model, the source type was changed to "CLLE".

The starting point for the menuing system can be accessed by pressing F4 on an empty command line.

The program interactively converts dates from Julian to MDY and vice versa.

For example: the command CALL PGM(ICVTDATC) PARM('04180' 'M') will convert the Julian date 04180 to 062804 (June 28, 2004).