Path: utzoo!utgpu!watmath!clyde!att!pacbell!ames!mailrus!uflorida!gatech!udel!burdvax!ubbpc!wgh
From: wgh@ubbpc.UUCP (William G. Hutchison)
Newsgroups: comp.lang.misc
Subject: Re: Need for language interface standards (was Re: COBOL -> C converter)
Summary: paradigm: (language bindings) ^ (RPC && XDR)
Message-ID: <410@ubbpc.UUCP>
Date: 29 Nov 88 21:05:06 GMT
References:  <395@ubbpc.UUCP> <479@ugacs.UUCP>
Organization: UNISYS CS, Blue Bell, PA
Lines: 45

In article <479@ugacs.UUCP>, weyrich@ugacs.UUCP (Orville Weyrich) writes:
> In article <395@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
> >                                ...
> >it is usually silly to translate programs from a language into another that's
> >_very_ different from the first.  Rewrites may well be cheaper!
> >-- 
> >Bill Hutchison, DP Consultant	rutgers!cbmvax!burdvax!ubbpc!wgh
> 
> I think that this discussion points out a neglected aspect of programming
> language development and language standardization: defining standard and
> useful interfaces *between* languages, so that for example new code in modern
> languages can be smoothly integrated into old programs in old languages
> without the need for massive rewrites. 
> 
> What does the rest of the net think?

  This part of the net thinks you have brought up a good point.  Here at the
Unisys Portation Center we keep having trouble with programs that call C
from COBOL or whatever.  This is a can of worms that standards writers have
ignored, probably because it is such a mess.

  I do not have a good solution yet, but, in the spirit of Computer Science,
I want to propose a Paradigm:
  Inter-language data passing might be specified in a manner like the GKS
graphics standard Language Bindings.  E.G. the ANSI COBOL standard could
have an appendix about the data types that could be passed to C, FORTRAN,
etc. and details about pass by reference, etc.  Let us not be deterred by
the fact that it may not be feasible!  A small step in that direction is
section 3F of the UNIX programmers manual which specifies connections between
FORTRAN code and UNIX library routines.

  Here is another way out, for those who eventually get UN*X System V
release 4:  do all inter-language calls using RPC (remote procedure call),
then the data types and calling sequences would be required to be in
XDR (eXternal Data Representation) format.  Each language developer would
have to provide RPC and XDR wrapper functions for their utility, library,
and I/O routines.  But they will have to do that anyway to support Release 4,
no?

  Do we see light at the proverbial end of the proverbial tunnel here?
-- 
Bill Hutchison, DP Consultant	rutgers!liberty!burdvax!ubbpc!wgh
Unisys UNIX Portation Center	"What one fool can do, another can!"
P.O. Box 500, M.S. B121		Ancient Simian Proverb, quoted by
Blue Bell, PA 19424		Sylvanus P. Thompson, in _Calculus Made Easy_