IBM AS/400 manual Main Procedure Considerations, Subprocedure Considerations, Program Creation

Models: AS/400

1 489
Download 489 pages 47.95 Kb
Page 70
Image 70

Coding Considerations

Program Creation

¹ If you specify that a

module

does

not

have

a

main

procedure

the

use

the

CRTBNDRPG

command

to

create

the program.

(A module

does

not

have a main procedure if the NOMAIN keyword is

specified on

a

con

cation.)

This

is

because

the CRTBNDRPG command requires that the

modu

contain a program entry procedure and only a

main

procedure

can

be

program entry

procedure.

 

 

 

 

 

 

 

 

 

 

 

 

¹ Similarly, when using CRTPGM

to

create

the

program,

keep

in

mind

that

NOMAIN module cannot be an

entry

module

since it does

not

have a pr

entry

procedure.

 

 

 

 

 

 

 

 

 

 

 

 

 

¹ A program that is created

to

run

in

the

default OPM

activation

grou

fying

DFTACTGRP(*YES)

on the

CRTBNDRPG command)

cannot

contain

 

 

 

 

bound

procedure

calls.

 

 

 

 

 

 

 

 

 

 

 

 

Main Procedure Considerations

¹Because the main procedure is the only procedure with a complete ifications available (except the P specification), it should be use

environment of all procedures in the module.

¹ A main procedure is

always exported, which

means

that

other proced

the program can call

the main procedure by

using

bound

calls.

¹ The call interface of a main procedure can be defined in one of

1. Using a prototype and procedure interface

2. Using an *ENTRY PLIST without a prototype

¹The functionality of an *ENTRY PLIST is similar to a prototyped call i However, a prototyped call interface is much more robust since it

parameter

checking

at

compile time.

If

you prototype

the

main

proc

you

specify how

it is

to

be

called

by specifying either the EX

EXTPGM keyword on the prototype definition. If EXTPGM is specified,

external program call is used; if EXTPROC is specified or if neithe

specified,

it

will be

called

by using

a

procedure call.

 

 

¹ You

cannot

define

return

values

for

a

main

procedure,

nor

can

you

its

parameters

be

passed

by

value.

 

 

 

 

 

Subprocedure Considerations

¹ Any

of

the calculation operations

may

be

coded

in

a

subprocedure.

all files must be defined globally, so all input

and

output specific

defined

in the main source section. Similarly, all

data

areas must b

the

main

procedure, although they

can

be

used

in

a

subprocedure.

¹The control specification can only be coded in the main source sec

controls the entire module.

¹A subprocedure can be called recursively. Each recursive call cause

invocation of the procedure to be placed on the call stack. The n

has new storage for all data items in automatic storage, and

that

unavailable

to

other invocations because it

is local.

(A data

item

in a subprocedure uses automatic storage

unless the

STATIC keyword

fied for

the

definition.)

 

 

 

46 ILE RPG for AS/400 Programmer's Guide

Page 70
Image 70
IBM AS/400 manual Main Procedure Considerations, Subprocedure Considerations, Program Creation, Coding Considerations