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.
As an Amazon Associate we earn from qualifying purchases.