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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,2203a21a136b39cc X-Google-Attributes: gid103376,public From: sampson@nosc.mil (Charles H. Sampson) Subject: Re: Fortran's Equivalence Date: 1997/04/07 Message-ID: <1997Apr7.211458.26224@nosc.mil>#1/1 X-Deja-AN: 231386603 Sender: news@nosc.mil References: <333840D1.7B12@cae.ca> Organization: Computer Sciences Corporation Newsgroups: comp.lang.ada Date: 1997-04-07T00:00:00+00:00 List-Id: In article , Keith Thompson wrote: > >2. If you're using overlays, watch out for default initializations. > For example, if a record type has default initial values for some > or all of its components, an address clause does not inhibit the > initialization unless the object is imported. The same area of memory > could be initialized twice if you're not careful. > From something I've recently learned in another thread, I gather that such a program would be erroneous according to 13.3(13). Appar- ently it's o. k. to interpret the initializations as making the address invalid. >3. If you're translating Fortran code to Ada (let's not get into > whether this is a good idea), and the Fortran uses EQUIVALENCE, you > should determine just how it's being used. If the closest semantic > match to the particular usage of the EQUIVALENCE happens to be > Unchecked_Conversion, use Unchecked_Conversion. This requires some > thought and analysis, which is why automated translation from one high > level language to another is impractical given the current state of > the art. > >Just saying that a Fortran EQUIVALENCE should be translated into an Ada >overlay misses some very important points. > Bless you, Keith. This is very close to a point I've been trying to make in the CMS-2 world for years. If you want to translate an over- lay into Ada it's necessary to understand how the overlay is being used. The CMS-2 to Ada translator that I was responsible for was very conser- vative; it refused to translate overlays at all, calling for user inter- vention. Unfortunately, users of CMS-2 translators want the translator to handle overlays. They're all over the place and typically very dif- ficult to figure out. The result was that our translator would regu- larly lose out to others that claimed to translate overlays by one or another simplistic approach. If development money had held out we intended to detect some com- mon cases that were translatable. And if cows had wings ... Charlie