Язык оперативного управления
Язык оперативного управления (OCL) — это язык управления семейством IBM System/3 , System/32 , System/34 и System/36 миникомпьютеров . Он поддерживается в среде IBM i System/36 в целях обратной совместимости. Он похож на более старые языки управления JCL ( System/370 ) и не связан с более поздними языками управления ( System/38 и IBM AS/400 ) и REXX (AS/400).
Обзор
[ редактировать ]Операторы OCL используются для непосредственной загрузки пользовательских или системных программ в память, назначения им системных ресурсов и передачи им управления системой в процессе, называемом выполнением. Тот факт, что программа хранится на диске компьютера, сам по себе не заставляет компьютер обрабатывать или выполнять программу.
Операторы OCL можно вводить вручную с клавиатуры, но обычно они сохраняются как член процедуры. Член процедуры — это свободно редактируемый член библиотеки, это исходный файл. На S/32, S/34 и S/36 процедуры не компилируются, они интерпретируются .
Пример
[ редактировать ]Операторы OCL обычно начинаются с двух косых черт и хотя бы одного пробела. Вот пример процедуры, хранящейся в System/36 как член PROC1:
** Procedure PROC1 Optional documentation
**
** Written by Joe User 2006-05-29
**
**
// * 'PROC1 procedure is running'
// * ' '
// IFF ACTIVE-'PROC2,PROC3' GOTO OKAY
** IFF means 'if false'
** ACTIVE-'name1,name2' means true
** if at least one of the listed programs is currently running
** GOTO xxx means skip to the statement
** that has a TAG xxx and resume processing
// PAUSE 'Cannot continue because other Payroll is running'
** Halts execution with a message
// CANCEL Stops execution of this procedure
// TAG OKAY
// IFF DATAF1-PFILE1 IFF DATAF1-PFILE2 GOTO NODELT
// * 'Caution, Pay Data Exists' Displays information on terminal
// * ' '
// * 'Press 1 to continue and DELETE existing files'
// IFF '1'=?1R? CANCEL A parameter is indicated by question marks surrounding a number
** Using 1R between question marks indicates
** that the parameter is required
** and processing waits for user input.
** CANCEL means immediately go to end of job.
// LOAD $DELET $DELET is used to delete files
// RUN
** This program requires and processes, consumes,
** succeeding statements as data up until an END statement
// IF DATAF1-PFILE1 SCRATCH UNIT-F1,LABEL-PFILE1
** Conditionally deletes an existing disk file
// IF DATAF1-PFILE2 SCRATCH UNIT-F1,LABEL-PFILE2
// END
**
// TAG NODELT
// LOAD PR101 PR101 could be an RPG or COBOL program
// FILE NAME-PAYMAST,DISP-SHR PAYMAST is the payroll master file
// FILE NAME-PFILE1,DISP-NEW,RECORDS-100,EXTEND-100
** A new file PFILE1 is created and allocated
** 100 records are assigned to PFILE1
** when all are used, the system tries to extend it by another 100
** each time it fills.
// RUN
** END statement is only necessary
** for those programs enabled
** to process any following statements as data
** Such data does not need to be formatted like OCL
// SWITCH 1XX0XXXX Causes flags U1 through U8 to be SETON (1), OFF (0), or left as previously set (X)
**
// LOCAL OFFSET-1,DATA-'PROC1' Places PROC1 in the Local Data Area (LDA)
// LOCAL OFFSET-101,DATA-'?USER?' Substitutes the operator's User ID
** LDA is accessed via a data structure, UDS within an RPG program
** LDA and User switches (flags) remain available to succeeding programs
** until set otherwise
** Called sub-procedure members and loaded program's source code needs to be examined
** as to whether or not the LDA and User switches are actually read or altered
// LOAD PR102
// FILE NAME-PAYMAST,DISP-SHR DISP-SHR means the file is shared, versus exclusive access
** Other programs can use PAYMAST at the same time
// FILE NAME-PFILE,LABEL-PFILE1 NAME/LABEL is used when the RPG file name reference
** and the actual disk file label are different
// RUN
// RETURN Return to the calling procedure, otherwise end-of-job
Этот член процедуры включает в себя множество операторов OCL, а также выражения управления процедурами (PCE), ресурсы, то есть в основном выделяются файлы, и несколько шагов задания, то есть выполняются программы.
Комментарии обозначаются звездочкой в столбце 1, в остальном они имеют произвольный формат. Или может быть помещен после логического конца оператора, если нет индикатора продолжения оператора на следующую строку, например завершающей запятой.
Внешние ссылки
[ редактировать ]IBM поддерживает бесплатные онлайн-руководства, которые можно загрузить, включая OCL 36.
- «Программирование среды System/36» (1995) v6r1
- «Справочник по среде System/36» (1995) v6r1