HP30003k Associates LogoHP3000/HP 3000 FAQ

Last Updated: Thursday, February 01, 2007 02:38 PM

HP3000 FAQ
MPE/V

HPe3000 FAQ
MPE/XL

HP 3000 FAQ
MPE/iX


HP3000 Programming languages available

6.1. Programming languages available


6.1.1.  What programming languages are available on MPE/V

  • Pascal - from HP
  • COBOL - from HP
  • FORTRAN - from HP
  • SPL - from HP
  • BASIC/3000 - from HP
  • Business Basic - from HP
  • RPG - from HP
  • CCS/C - from CCS (aka Corporate Computer Systems)
  • C/3000 - from Unison (no longer available)

6.1.2.  What programming languages are available on MPE/iX

3rd GLs:

  • C/iX - from HP
  • Pascal/iX - from HP
  • Fortran/?? - from HP
  • Business Basic - from HP
  • COBOL - from HP
  • RPG - from HP
  • BASIC/3000 (Compatability mode) - from HP
  • SPL (Compatability mode) - from HP
  • SPLash! - from Allegro
  • C++ (G++ - Posix only) - free
  • CCS/C - from CCS (aka Corporate Computer Systems)
  • MicroFocus COBOL - from MicroFocus
  • Java - free from HP
  • Python - free
  • Perl - free

4th GLs:

  • Transact - from HP
  • Powerhouse - from Cognos
  • Speedware - from Speedware

6.1.3.  Development environments

 


6.1.4.  I want to develop for MPE/V and iX, what language should I use?

CB

Fortran, COBOL, Business Basic, and Pascal all are highly portable between MPE/V and MPE/iX. CCS/C also ports easily to their own counter- part on MPE/iX, though porting from CCS/C on MPE/V to C/ix (from HP) can lead to compatability issues. Also, SPL on MPE/V can be migrated to SPLash! on MPE/iX with varying degrees of work depending on the particulars of the application (it is possible to write new code that compiles in both SPL on MPE/V and SPLash! on MPE/iX if SPL is your language of choice).


6.1.5.  Portability of C/iX object code across OS versions

Can C/iX code compiled on MPE/iX 5.0 run on other (prior) operating system versions?

CB
No. Not if compiled with default libraries. "It's not supported."

RAT
We worked around it by creating a PUB4 group in our SYS account with the following files:

ACCOUNT=  SYS         GROUP=  PUB4

FILENAME  CODE  ------------LOGICAL RECORD-----------  ----SPACE----
                  SIZE  TYP        EOF      LIMIT R/B  SECTORS #X MX

CCMSGCAT          128W  FB         229     104800   1      240  1  8
CCOMXL    NMPRG   128W  FB        9426       9426   1     9440  1  8
CCSTDRL            72B  FA           3          3   3       16  1  1
CCXL               80B  FA          41         41   3       16  1  1
CCXLGO             80B  FA          69         69   1       32  1  1
CCXLLK             80B  FA          56         56   1       32  1  1
LIBC      NMRL    128W  FB        1543       1543   8     1552  7  8
LIBCANDT  NMRL    128W  FB          13         13   1       16  1  1
LIBCANSI  NMRL    128W  FB          11         11   1       16  1  1
LIBCINIT  NMRL    128W  FB         331        331   1      336  2  8
LIBCRAND  NMRL    128W  FB          13         13   1       16  1  1
LIBM      NMRL    128W  FB         297        297   1      304  2  1
LINKEDIT  NMPRG   128W  FB        2956       2956   1     2960  1  1
SOCKETRL  NMRL    128W  FB        7214    4096000   1     7216  7 32
XDBEND    NMOBJ   128W  FB           9          9   1       16  1  1
XL        NMXL    128W  FB       60247    4096000   1    60256  1  *

We've modified all the command files to reference CCOMXL.PUB4.SYS and the LIBC@.PUB4.SYS. This has worked very well for us so far....

We face this with each update. Our production systems stay on the old GS version while the development system experiments with the new. This can take weeks, and the applications programmers need to gen patches.

I know this doesn't apply to a developer, but we keep each version of the compiler and libraries in alternate groups and during this phase, put the old compilers in PUB.SYS and the old libraries in H.SYS and LIB.SYS. This way the programmers generate 4.0 code, which will run in production, and on the 5.0 development system as well.

If you took this logic a bit further, you could create command files that allowed the version number to be set/passed, and execute the appropriate compilers. How you would handle #includes is a trickier problem.

 


Back to FAQ Index Back to 3k Home Page
 
HP3000-L FAQ Collection (c) 3k Associates, Inc. 1996-2006