[net.unix] C compiler for IBM

greg@vecpyr.UUCP (Greg Millar) (01/14/85)

Is there a C compiler that runs on big IBMs under MVS and/or CMS?

If there is does it have a UNIX library for i/o etc?

Is it an IBM product or someone else's?

Can you link to other existing libraries written in other languages
(eg FORTRAN, PL/I), I am particularly interested in GDDM (IBM's Graphics
Package)?

Thank you

		
			Greg Millar

			...{ucbvax,decwrl}!dual!vecpyr!greg
			Visual Engineering, Inc.  
			2680 N. First
			San Jose, CA 95134
			(415) 945-9055

ron@brl-tgr.ARPA (Ron Natalie <ron>) (01/17/85)

> Is there a C compiler that runs on big IBMs under MVS and/or CMS?
> 
> If there is does it have a UNIX library for i/o etc?
> 
> Is it an IBM product or someone else's?
> 
> Can you link to other existing libraries written in other languages
> (eg FORTRAN, PL/I), I am particularly interested in GDDM (IBM's Graphics
> Package)?
> 
Don't by the VM/CMS compiler from RSI (the Oracle) system.  It is unusable.

-Ron

Alan Crosswell <US.ALAN%CU20B@COLUMBIA.ARPA> (01/17/85)

WATCOM Products, Inc. (The University of Waterloo spin-off) has done a nice
job on a CMS C compiler.  The license fee is reasonable and I found it to be
much nicer than Oracle, Whitesmiths, or ATT's C/370.  As usual,  the Waterloo
folks have done a good job.  You can call (519) 886-3700 or write to
	WATCOM Products, Inc.
	415 Phillip Street
	Waterloo, Ontario N2L 3X2
	Canada
Waterloo C does not provide a "fortran" linkage by just declaring an external
function as type fortran but you can write a 10 line assembly interface that
maps from their linkage to OS linkage for example.  They provide an example
subroutine that does just this in the manual.  Whether you can get this to
work with PL/I or Fortran subroutines really depends.  I would say that if
you know the junk required to write an Assembler main program that can call a
PL/I or Fortran subroutine then you would be able to do it in Waterloo C
(with some Assembler).  The converse situation:  calling a C function from
PL/I or Fortran is definitely doable.  I have done something along these
lines already where I call a C function as a second-level CMS interrupt 
handler.  The first-level handler is an assembler routine that sets up 
the C environment (stack and registers).  Again,  the information I needed
to set up the environment was in the Waterloo documentation.

Alan Crosswell
Columbia University Center for Computing Activities

-------

herbie@watdcsu.UUCP (Herb Chong [DCS]) (01/20/85)

In article <7476@brl-tgr.ARPA> Alan Crosswell <US.ALAN%CU20B@COLUMBIA.ARPA> writes:
>...Whether you can get this to
>work with PL/I or Fortran subroutines really depends.  I would say that if
>you know the junk required to write an Assembler main program that can call a
>PL/I or Fortran subroutine then you would be able to do it in Waterloo C
>(with some Assembler).  
>
>Alan Crosswell
>Columbia University Center for Computing Activities

If the person who asked this is using the PL/I Optmizing compiler, then
declaring the interface routine as EXTERNAL ENTRY OPTIONS(ASSEMBLER)
will use essentially what is the OS interface.  Using OPTIONS(FORTRAN)
will guarantee generating IBM's standard FORTRAN linkage convention
used by all their OS FORTRAN products.  Calling a PL/I program is
somewhat messier as the PL/I runtime environment needs to be
established so that PL/I can perform error recovery.  This is
documented in the Programmer's Guide for PL/I.  You should use the
FORTRAN calling sequence from CW and tell PL/I that it is being called
by a FORTRAN program.

Herb Chong, BASc
Computer Consultant 

I'm user-friendly -- I don't byte, I nybble....

UUCP:  {decvax|utzoo|ihnp4|allegra|clyde}!watmath!water!watdcsu!herbie
CSNET: herbie%watdcsu@waterloo.csnet
ARPA:  herbie%watdcsu%waterloo.csnet@csnet-relay.arpa
NETNORTH, BITNET: herbie@watdcs, herbie@watdcsu
POST:  Department of Computing Services
       University of Waterloo
       N2L 3G1  (519)885-1211 x3524