• Aucun résultat trouvé

Job Control Statements for Compilation

Dans le document OS PL/I (Page 30-33)

Although you will probably use cataloged procedures rather than supply all the job control statements required for a jeb ste~

that invokes the compiler, you should be familiar with these staterrents so that you

r---·---,

I I I I I I I I

Standard

I

Contents of

I

Possiblel Record

I

Record

I

Buffers

ddname

I

data set

I

device

I

format

I

size

1---I I

classes

I

(RECFM)

I

(LRECL)

I

BUFNO

I

BLKSIZE SYSIN (or Input to the

I

SYSSQ F,FB,U

VB,y

<101(100)

<105 (104)

2 200

SYSCIN) SYSLIN SYSPUNCH

SYSUT1

SYSPRINT

SYSLIB

Notes:

compiler Object module Preprocessor output,

compiler output Temporary

workfile

Listing, including messages Source

statements for preprocessor

I I

I

SYSSQ

I I

SYSSQ

I

SYSCP SYSDA

SYSSQ

SYSDA

FB FB

F

f,FB

80 80

1091,1691,3491 or 4051

according to available space

125

<101

2 80

2 80

2 129

1. The possible device classes are:

SYSSQ Magnetic-tape or direct-access device.

SYSDA Direct-access device.

SYSCP Card-punch device.

2. Any block size can be specified except for SYSLIB and SYSUT1. Block size for SYSLIB depends on the options specified. If the INCLUDE option is specified, the maxi~um block size is 4260 bytes. If MACRO is specified, for SIZE values below 60K bytes, the maximum is 400 bytes: atove 60K bytes, the block size maximum is the value of LRECL for SYSUT1. The block size for SYSUT1 is always provided

by

the compiler.

3.

4.

5.

If the record format is not specified in a DD statement, the default value (underlined) is provided by the compiler.

The compiler will atterept to obtain source input from SYSCI~ if a DD statement for this data set is provided. Otherwise it will obtain its input from SYSI N.

The numbers in parentheses in the wRecord sizew column are the defaults which can be overridden by the user. Where no parentheses are present,

I

the value is fixed and cannot be altered.

l---J

Figure 4-2. Compiler standard data sets

18 as PL/I Optimizing Compiler: Programmer's Guide

can make the best use of the compiler, and if necessary, override the staterrents of the cataloged procedures.

The IBM-supplied cataloged procedures that include a compilation procedure step are as follows:

PLIXC Compile only.

PLIXCL Compile and link-edit.

PLIXCLG Compile, link-edit, and execute.

PLIXCG Compile, load, and execute.

The follOWing paragraphs describe the essential job control statements for compilation. The IBM-supplied cataloged procedures are described in Chapter 11 and include examples of these statements.

EXEC STATEMENT

The basic EXEC state~ent is:

//stepname EXE~ P~=IELOAA

The PARM parameter of the EXEC staterrent can be used 'to specify one or more of the optional facilities provided by the

compiler. These faciiities are described under "Optional Facilities," later in this chapter.

DD STATEMENTS FOR THE STANDARD DATA SETS

The compiler requires several standard data sets, the number'depending on the optional tacilities specified. You must define these data sets in DD statements with the standard ddnames which are shown, together with other characteristics of the data sets, in Figure 4-2. 'Ihe DD statements SYSIN, SYSUT1, and SYSPRINT are always required.

You can.store any of the standard data sets on a direct-access device, in which case, you must include the SPACE parameter in the DD statement that defines the data set to specify the amount of auxiliary storage required. The amount of auxiliary storage allocated in the IBM-supplied cataloged procedures should suffice for most applications.

Input (SYSIN, or SYSCIN)

Input to the compiler must be a data set defined by a DD staten,ent with the name SYSIN or SYSCIN: this data set must have CONSECUTIVE organizaticn. 'Ihe input must be one or more external FL/I procedures; if you want to compile nore thar. cne external

proc~dure in a single jot or job step, precede each procedure, exce~t possitly the first, with a PROCESS statement (described under "Batched Compilaticn," later in this chapter) •

Eighty-column punched cards are commonly used as the input mediurr for PL/I scurce programs. However, the input data set may be on a direct-access device, rragnetic tape, or paper tape. The input data set may contain either fixed-length reccrds, blocked or untlockedr, variatle-Iength records, or undefined-length records; the maximum record size is 100 bytes. The compiler always reserves 200 bytes cf main storage (100 tytes each) for two buffers for this data set; however, you rray specify a bl0ck size of more than laC bytes"

provided that sufficient rrain storage is available to the compiler. (See the discussion of the SIZE opticn under

"Optional Facilities," later in this chapter. )

Output (SYSLIN, SYSPUNCH)

Output (that .is, one or more object

modules) from the conpiler can be stcred in either,the data set defined ty the DD

statement with the nan,e SYSLIN (if ycu specify the OBJECT compile~ option) .or in the data set defined by the I:D statenent with the name SYSPUNCH (if you specify the DECK compiler option). You nay specify both options in one program, when tihe output will be stored in both data sets.

The object module is always in the forn:

of 80-byte fixed-length records, blocked or unblocked. The compiler always resierves two buffers of 80 bytes each; however, you may specify a block size of more than 80 bytes, provided.that sufficient nail')

storage is available to the compiler. (see the discussion of the SIZE cption under

·Optional Facilities," later in this chapter.) The data set defined by the DD statement with the name SYSPUNCH is also used to store the output frcn the

preprocessor if you specify the MDECK compiler option.

Temperary Workfile (SYSUT1)

The compiler requires a data set for use as a temporary workfile. It is defined by a :CD statement with the name SYSU'Il, and is known as the spill file. It must be on a w.rect-access device. The spill file is used as a logical extension to rrain storage and is used by the compiler and by the preprocessor to contain text and dictionary information.

Four record sizes are given in Figure 4-2 for SYSUT1. For storage devices other than the 3330, the first three sizes

correspond to the amount of storage available to the compiler, as sho~n in Figure 4-3.

storage Record Size 50-55K 1091

56-69K 1691 over 69K 3491

Figure 4-3. Record sizes for SYSUTl A record size of 4051 is used en the 3330.

Note that the DD statements given in this publication and in the cataloged procedures for SYSUTl request a sFace

allocation in blocks of 1024 bytes; this is to ensure adequate secondary allocations ef direct-access storage space are acquired.

Dedicated Data Sets: If a job being run under MVT has several job steps, and each job step requires a data set for use as a terr.porary workfile, the result is a

considerable overhead in time and space.

To reduce this as far as possible, you can use dedicated .data sets. These are data sets. that are created by the operating system when the job is selected for

processing. They can be used by each jeb step that requires a temporary workfile.

Dedicated data sets are normally allocated by the initiator and deleted when it terminates. More information on using dedicated data sets is given in Chapter 11.

Listing (SYSPRINT)

The compiler generates a listing that includes all the source statements that i t processed, inforrration relating to the object module, and, when necessary,

messages. Most of the information included in the listing is optional, and yeu can

specify those parts that yeu require by including the appropriate ccnpiler cFtions.

The infermation that may appear, and the associated compiler oFtiens, are described under "Compiler Listing," later in this chapter.

You must define the data set in ~hich

you wish the corrpiler to stcre its listing in a :CD statement with the name SYSPRINT.

This da ta set rr:ust have CONSECUTIVE organization. Although the listing is usually printed, i t can be stcred cn any magnetic-tape or direct-access device. For printed output, the fcllcwing statenent will suffice if your installation follows the convention that output class A refers te a printer:

//SYSPRINT DD SYSCUT=A

The cempiler always reserves 258 bytes of main storage (129 bytes each) fer two buffers for this data set; hcwever, you may specify a block size of more than 129 bytes, provided that sufficient rrain

storage is available to the compiler. (see the discussion of the SIZE e~tien under

"Optienal Facilities," later in this chapter. )

Source Statement Library (SYSLIE) If you use the preprocessor %INCLU:CE statement to introduce seurce statenents into the Pl/I program from a library, you can either define the library in a DD statenent with the narre SYSIIE, or ycu can cheose your own ddname (or ddnames) and specify a ddname in each %INCLUDE

statement. (See "Cerrpile-tine precessing,"

later in this chapter.)

EXAMPLE CF CCMFILER JCl

A typical sequence of jeb ccr.trel

staterr·ents for compiling a Fl/I program is shown in Figure 4-4. 'Ihe DECK and NCOBJECT corr-piler options, described below, have been specified to obtain an cbject ncdule as a card deck only. Jeb ccr.trel

staterrents for link editing an object module in the form ef a card deck are shown in Chapter 5.

Dans le document OS PL/I (Page 30-33)