Hello NjÕl,

You wrote:
>I *thought* that CPF was written in MI, and that IBM rewrote most of
>CPF (~75%) when they made it OS/400.

If I recall correctly:

S/38 - CPF was written (mostly) in PL/MI.  MC was written in PL/MP.

CISC - XPF was written (mostly) in PL/MI.  xLIC was written in PL/MP.

RISC - XPF is written (mostly) in PL/MI.  SLIC is written in C++.

PL/MI and PL/MP are based on IBM's internal compilers which are all
deriviatives of PL/X which conceptually is a 'systems' version of PL/1.
PL/MI is like PL/1 with the ability to embed MI instructions.  A large
part of PL/MI coding involves finding the right macro and invoking it.
Note that these are real macros that GENERATE code as opposed to C macros
which are a trivial code replacement function.  IBM have macros to
generate data structures for internal control blocks, macros to add this,
remove that, call something else, macros that monitor exceptions, etc.

LPPs are mostly written in PL/MI or C with a few using "odd" languages
such as Pascal or Modula-2.  There were a few using COBOL and almost none
using RPG (there are certainly no IBM RPG LPPs now).  PL/MI is used for
existing products.  C or C++ is used for new products.

Rochester development is not done on AS/400 systems.  I think that is the
main reason AS/400 programming tools suffer a lack of focus (unless you
think using an unreliable PC operating system to write AS/400 code is an
improvement).  If Rochester programmers had to use SEU, SDA, etc. we would
have seen much more improvement in those tools.

The PL/xx compilers run on VM and generate an MI program template which is
sent to the an AS/400 via SNADS and received as a network file.  IBM have
tools that turn that template into a program object.  They also have tools
to block and unblock the translator, change state and domain, and all the
other good things necessary to build products.

The same process occurs for all AS/400 objects.  The source was stored as
parts on VM using a tool called IDSS (on which ADM appears to be based)
which was very S/38-like in its behaviour.  Development was done using
Xedit or dragged to AIX and edited there.   Program source was compiled on
VM and the template sent to an AS/400 for program creation and testing.
Other source such as commands, CL source,  DDS source, etc. was sent to an
AS/400 as a network job stream.

The C and C++ stuff is done on AIX workstations and I presume generates a
w-code template that complies with the Common Use Back End (CUBE)
specifications.  That CUBE template is sent to the AS/400 for final
compilation just like the various VisualAge cross-compilers do.

Needless to say there is a formal development process built over these
functions using Design Change Requests, Problem Tracking Reports,
inspections, testing, etc.

Given that IBM has slowly been removing VM from its networks over the past
few years I suspect that using VM for development has ceased and it is all
now based around AIX workstations and the Andrew File System with a Unix
source code control system generating the job streams.  Somehow I think
that AS/400 objects are still built the same way using job streams but
that the programmer tools have changed.  We'll only know if a current
developer from IBM feels like explaining the process.  I've been away too

Simon Coulter.
   FlyByNight Software         AS/400 Technical Specialists

   Phone: +61 3 9419 0175   Mobile: +61 0411 091 400        /"\
   Fax:   +61 3 9419 0175   mailto: shc@flybynight.com.au   \ /
                 ASCII Ribbon campaign against HTML E-Mail  / \

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.