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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,6609c40f81b32989 X-Google-NewGroupId: yes X-Google-Thread: 1094ba,9bdec20bcc7f3687 X-Google-NewGroupId: yes X-Google-Thread: 101deb,e67cdb1dcad3c668 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,gid8d3408f8c3,gidbda4de328f,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news1.google.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail NNTP-Posting-Date: Mon, 07 Jun 2010 09:22:45 -0500 From: Arthur Evans Jr Newsgroups: comp.lang.ada,comp.lang.fortran,comp.lang.pl1 Subject: Re: Why is Ada considered "too specialized" for scientific use References: <4bb9c72c$0$6990$9b4e6d93@newsspool4.arcor-online.net> <4bba8bf1$0$56418$c30e37c6@exi-reader.telstra.net> <4bbb2246$8$fuzhry+tra$mr2ice@news.patriot.net> <4bbb5386$0$56422$c30e37c6@exi-reader.telstra.net> <4bbdf5c6$1$fuzhry+tra$mr2ice@news.patriot.net> <4c0a2e36$0$34205$c30e37c6@exi-reader.telstra.net> <4c0b234f$1$fuzhry+tra$mr2ice@news.patriot.net> <4c0cc11c$0$56569$c30e37c6@exi-reader.telstra.net> User-Agent: MT-NewsWatcher/3.4 (PPC Mac OS X) Date: Mon, 07 Jun 2010 10:22:45 -0400 Message-ID: X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 108.1.76.186 X-Trace: sv3-heKMOyU/wR8iV8Q90ORqUs2dtqY4cVi5Ku0l0Wv+i12I4JzVoCg816ixzgvBaoZvebhk8wjOPO/XhHa!tdkYKIBj4WNemq427KNNtBz9GMte11pkIJEUIHZ5vSeMbL1mVK358hF75IJX0iNJDd6Ogi22RaJv!URAiZcFwXTDmL6d9Hd0RTH15lIrPwPhXckYl6ZuFBM1xDg== X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 Xref: g2news2.google.com comp.lang.ada:12389 comp.lang.fortran:26444 comp.lang.pl1:1511 Date: 2010-06-07T10:22:45-04:00 List-Id: In article , Peter Flass wrote: > If you want to talk *really* old assemblers, look at SOAP. The hardware > had no core, only drum memory, and each H/W instruction contained the > drum address of the next instruction to be executed. A big function of > the assembler was figuring out where to store the instructions on the > drum so that the next instruction was under the R/W head just as the > previous finished executing -- based on the instruction timings. Try > doing that by hand for a large program! SOAP was an assembler for the IBM 650, a drum machine that had 200 (NOT 2048) words on a rotating drum in 40 tracks of 50 words each. It was a one-plus-one address machine, each instruction including the address of its successor. As Mt Flass has said, SOAP (Symbolic Optimal Assembler Program) did its best to place each instruction so that it was coming under the read heads when the previous instruction finished executing. But, it did that when first the instruction was encountered in the input. If the instruction was the successor of another instruction, it wasn't likely to be optimized for this one. Thus it was in fact sometimes (rarely) worth doing that optimization by hand for frequently used pieces of code. The 650 initially had no floating point instructions, so the run time support library for IT included code to simulate floating point arithmetic. Since this package had heavy use, my colleague Joe Smith optimized it by hand, resulting in a noticeable performance increase. Yes, I know, this discussion really belongs on alt.folklore.computers, but I couldn't resist. BTW -- Don Knuth, who like me cut his programming teeth on the 650, once designed an integer-programming application to truly optimize instruction placement. I don't know if he ever actually programmed it, as he was sure it would take vastly more time to execute than it could ever save. I may misremember some of the details. Art Evans Old Codger