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 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1094ba,df9eda71533d664e,start X-Google-Attributes: gid1094ba,public X-Google-Thread: 103376,b19fa62fdce575f9 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-12-04 16:17:31 PST Path: bga.com!news.sprintlink.net!howland.reston.ans.net!swrinde!ihnp4.ucsd.edu!network.ucsd.edu!mbk From: mbk@inls1.ucsd.edu (Matt Kennel) Newsgroups: comp.lang.ada,comp.lang.fortran Subject: Re: Why don't large companies use Ada? Date: 5 Dec 1994 00:03:59 GMT Organization: Institute For Nonlinear Science, UCSD Message-ID: <3btldf$aek@network.ucsd.edu> References: NNTP-Posting-Host: lyapunov.ucsd.edu X-Newsreader: TIN [version 1.1 PL8] Xref: bga.com comp.lang.ada:8265 comp.lang.fortran:6870 Date: 1994-12-05T00:03:59+00:00 List-Id: Keith Thompson (kst@alsys.com) wrote: : In <3bo4il$3lb@felix.seas.gwu.edu> mfeldman@seas.gwu.edu (Michael Feldman) writes: : > At the time, I recall speaking with engineers who walked away from : > PL/1 _simply_ because it mapped multidimensional arrays row-major, so that : > interfacing to old Fortran codes required the programmer to tranpose : > everything on the PL/1 side before passing it to the Fortran subroutine. : I'll take your word for this, but I still find it difficult to understand. : If you're writing new PL/I or Ada code to interface to existing Fortran : libraries, all you should need to do is swap the indices; there should : be no need to physically transpose the arrays themselves. This should : be only a small fraction of the effort required to interface to Fortran : (for Ada, matching the types and writing the Interface pragmas; for : PL/I, ???). Could it be that the engineers were using this as an excuse : to stick with Fortran, or am I missing something? No you're not missing anything. The practical problem is that *only* difference is that the indices are swapped. It's like using two pieces of software to do very similar things except that they have slightly different sign conventions. This is a trivial difference, and thus a real nightmare. Either your Fortran or your PL/I code will be using indices the "wrong way". You typically program an algorithm to follow an indexing convention as defined in a textbook or other scientific document. You really need to get these completely right, so it's a major maintenance and consistency problem that can cause very irritating bugs, if you can't write the indices the same way everywhere. Imagine a professor who changed his notation every other lecture, and the confusion that causes. The point is that this is something that is * really utterly trivial for a compiler to do (allow matrices to go whichever way), and * an authentic pain in the ass to humans when you don't have it, the fact that subsequent computer langauges and compilers have nonthetheless given Fortran programmers the finger over and over for decades is really galling. I'm very glad to hear that Ada9x will finally stop this madness. : -- : Keith Thompson (The_Other_Keith) kst@alsys.com : TeleSoft^H^H^H^H^H^H^H^H Alsys, Inc. : 10251 Vista Sorrento Parkway, Suite 300, San Diego, CA, USA, 92121-2718 : /user/kst/.signature: I/O error (core dumped) -- -Matt Kennel mbk@inls1.ucsd.edu -Institute for Nonlinear Science, University of California, San Diego -*** AD: Archive for nonlinear dynamics papers & programs: FTP to -*** lyapunov.ucsd.edu, username "anonymous".