At my customer's site there are call macros
and startup macros for the modules, which, in combination,
implement kind of "extended" linkage conventions, where
the size of the parameter list, the version of the parameter interface
and so on, is passed in combination with the "netto" parameters.

This is done in a way which is compatible with the standard OS linkage
conventions (the meta information is located "before" the register 1
address, for example).

Because these extended linkage conventions are used all over the
site, there is not much chance for errors in parameter passing.
The macros are generated from language-independent interface
descriptions; target languages are ASSEMBLER, PL/1 and C.
Calls between these languages are supported; a caller does not
need to know the language of the called module.

We even can do things like automatic version upgrade of
parameter interfaces (call with parameter interface 08 and
upgrade it to 09 by an intermediate "dynamic interface upgrading
service module") - if there are lots of callers of version 08, which
cannot all be moved to version 09 in time. This "upgrading module"
is generated - given the two interface descriptions as input.

Kind regards

Bernd

Reply via email to