From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.BERKELEY.EDU Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!GWUVM.BITNET!MFELDMAN From: MFELDMAN@GWUVM.BITNET (Mike Feldman) Newsgroups: net.lang.ada Subject: Fortran-77/Ada Message-ID: <8605210100.AA14028@ucbvax.Berkeley.EDU> Date: Tue, 20-May-86 18:52:00 EDT Article-I.D.: ucbvax.8605210100.AA14028 Posted: Tue May 20 18:52:00 1986 Date-Received: Fri, 23-May-86 06:31:57 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet List-Id: I'm not absolutely sure about of the truly esoteric stuff in Fortran-77, but some fairly obvious stuff comes to mind. You asked about "features" in Fortran-77 not easily simulated in Ada. I don't know whether you're trying to do an automatic (or nearly) translation or a manual re-coding, but Fortranners often do tricks that might not be obvious to a source-to-source translator. The most obvious is the use of EQUIVALENCE statements to alias storage to different storage structures or different types. This could probably be handled by using unchecked conversion in Ada, but I wouldn't like to attempt it for the general case of this trick. We're talking about what the C world calls a "union" of different types on top of a single chunk of memory. Run-of-the mill Fortran code should be able to be mapped without too much trouble to Ada, except for the tricky stuff such as that above. Watch out for the CHARACTER type in Fortran-77; you need a decent dynamic string package in Ada to handle that. Another thing to watch out for is that Fortranners often take advantage of their knowing that multi-dimensional arrays are mapped "column major", and do tricks accordingly; storage mapping for such things is NOT defined in the ALRM; it is implementation-dependent, but most compilers seem to do it row-major, a la PL/1 or Pascal. All you in Info-Ada land: have I missed anything big? Mike Feldman Dept. of EE&CS George Washington University Washington, DC 20052