Path: utzoo!utgpu!watmath!clyde!att!pacbell!ames!ncar!tank!nic.MR.NET!umn-cs!stachour From: stachour@umn-cs.CS.UMN.EDU (Paul Stachour) Newsgroups: comp.lang.misc Subject: Re: Standardization (of FORTRAN, Ada, ect.) Message-ID: <10250@umn-cs.CS.UMN.EDU> Date: 29 Nov 88 02:09:24 GMT References:<395@ubbpc.UUCP> <311@csun1.UUCP> Reply-To: stachour@umn-cs.cs.umn.edu (Paul Stachour) Distribution: na Organization: CSci Dept., University of Minnesota, Mpls. Lines: 35 In article <311@csun1.UUCP> weyrich@csun1.UUCP (Orville Weyrich) writes: >DEC demonstrates that this can be done in the VAX/VMS family of programming >languages (although this is a private DEC standard). > >It *must* be easier, faster, and more cost-effective to define linkage between >say FORTRAN and Ada than it is to redefine FORTRAN to have most of the features >of Ada (as is being done by the 8X committee). > >Of course, such a proposal is not expected to be greeted with a warm welcome >by certain mainframe manufactures who have trouble getting their own standard >linkage conventions standardized :-), or those who have separate and >incompatible runtime libraries for each language :-), or those who do not >have language-independent code generators :-). Of course we need to be able to call any other language from any other language. But DEC was by no means the first to think about this. GE and MIT, when they built the Multics system, way-back-in-60's, provided that any language could call any other, and even without having to provide any such thing as a "pragma" or other means of saying "I'm calling FORTRAN here from COBOL or PL/I or ...". And the standard they created is still good enough today to handle Ada, even though the HOLWG didn't even exist yet when Multics was done. But, as many of us know, people don't buy reliability, or security, or ease-of-programming. They buy "cheap" and pay through the nose for it again and again and again. For the curious, the Multics conventions are based on passing 1+n+n words as an argument-list, with the "1" telling how many arg-pointers and how many descriptor-pointers there are. The n+n are the arg-pointers and descriptor-pointers. Languages like FORTRAN pass only 1+n, ones like PL/I and Pascal pass 1+n+n, and the inter-language calls from PL/I to FORTRAN are done by FORTRAN ignoring the descriptors. Calls from FORTRAN to PL/I are done by the PL/I code simply not referencing the non-existant descriptors, since nothing could have been passed that needed one! "Computer Science loses its memory, if not its mind, at regular (six month???) intervals. (from ???)" ...Paul