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_