Re: calling RPG ILE with parameter list from MI

James Lampert <jamesl-6/ELSmrcqeUu8xhjR5IN5AC/[email protected]> Mon, 10 Dec 2007 09:56:34 -0800
Newsgroups gmane.comp.lang.as400.mi
Message-ID <[email protected]>
Denes L wrote:
> Oh boy... it just goes to show how much RPG I know, but my RPG programming friends
 > were definitely NOT "supportive" this time.

I don't think "supportive" has anything to do with it. Although there 
are some who assume that anybody using MI is attempting to hack the 
operating system, and some who believe that as fast as today's 
processors are, there's no reason to bother with MI for optimization 
purposes.

I think the problem with your "RPG programming friends" is simply that 
they are exactly that: RPG specialists, rather than programmers who 
happen to be able to use RPG, rarely (if ever) saw MI source, much less 
wrote any, and so they could not be expected to know why a 
mixed-language application wasn't passing data correctly.

As to order of declarations:
Of course, declarations don't go into the instruction stream. They go 
into the symbol table. And that includes the ENTRY declarations that 
define subroutines, and even statement labels. But the compiler still 
has to process them. Forward references in general tend to make more 
work for a compiler (ANY compiler), and there are limits to what it can 
deal with, without simply giving up.

As to syntactic constructs:
Yes, the declarations are defined by the compiler. But so are the 
mnemonics for every MI executable opcode. If one still had access to the 
level below QPRCRTPG (which was first offered at, if I remember right, 
V1R3), you could define your own opcode mnemonics and declaration 
syntax. Indeed, before QPRCRTPG, you HAD to parse the source yourself. 
The syntax and opcode mnemonics used by QPRCRTPG simply reflects the 
standard MI source format IBM used internally and documented in the MI 
manuals, not only for the AS/400, but for the S/38 before it (and if you 
can get hold of an S/38 MI manual, it can be a real eye-opener).

And as to generated MI, tell me about it! The MI source for the 
QuestView main program fills two heavy 3-ring notebooks, and it appears 
to have originated as generated MI. My predecessors had already done 
much to both optimize it and make it more readable, but I still ended up 
spending over a year going through it, one subroutine at a time, to 
optimize it for space, speed, and maintainability.

-- 
James H. H. Lampert
Touchtone Corporation

_______________________________________________
This is the MI Programming on the AS400 / iSeries (MI400) mailing list
To post a message email: MI400-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/mi400
or email: MI400-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at http://archive.midrange.com/mi400.