Limbaj de control operațional - Operational Control Language
Limbajul de control operațional (OCL) este limbajul de control al familiei de minicomputer IBM System / 32 , System / 34 și System / 36 . Este compatibil cu IBM i 's System / 36 Environment în scopuri de compatibilitate inversă. Este similar cu limbile de control mai vechi JCL ( System / 370 ) și System / 3 și nu are legătură cu limbajul de control ulterior ( System / 38 și IBM AS / 400 ) și REXX (AS / 400).
Prezentare generală
Pe IBM S / 32, S / 34 și S / 36, instrucțiunile OCL sunt utilizate pentru a încărca direct programe de utilizator sau de sistem în memorie, pentru a le atribui resurse de sistem și pentru a le transfera controlul sistemului într-un proces numit execuție. Faptul că un program este stocat pe unitatea de disc a computerului nu determină în sine computerul să proceseze sau să execute programul.
Instrucțiunile OCL pot fi introduse manual de la tastatură, dar sunt în general stocate ca membru de procedură S / 32, S / 34 sau S / 36. Un membru de procedură este un membru editabil în mod liber în cadrul unei biblioteci, este un fișier sursă. Pe S / 32, S / 34 și S / 36, procedurile nu sunt compilate, sunt interpretate .
Exemplu
Instrucțiunile OCL încep de obicei cu două bare oblice și cel puțin un caracter spațial. Iată un exemplu de procedură stocată pe un sistem / 36 ca membru 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
Acest membru de procedură încorporează o varietate de instrucțiuni OCL, de asemenea, expresii de control a procedurilor (PCE), resurse, adică sunt alocate în mare parte fișiere și mai mulți pași de job, adică programe sunt executate.
Comentariile sunt reprezentate de un asterisc în coloana 1 și altfel în format liber. Sau poate fi plasat după sfârșitul logic al unei instrucțiuni, dacă nu există un indicator pentru continuarea instrucțiunii pe linia următoare, ca o virgulă finală.
linkuri externe
IBM menține manual manual și descărcabil, inclusiv OCL 36.
- „Sistem / 36 Programare de mediu” (1995) v6r1
- „System / 36 Environment Reference” (1995) v6r1