Path: utzoo!mnetor!uunet!husc6!cca!mirror!ima!johnl From: franka@mntgfx.MENTOR.COM (Frank A. Adrian) Newsgroups: comp.compilers Subject: Re: Assemblers Message-ID: <821@ima.ISC.COM> Date: 23 Dec 87 19:59:54 GMT Sender: johnl@ima.ISC.COM Reply-To: franka@mntgfx.MENTOR.COM (Frank A. Adrian) Organization: Mentor Graphics, Beaverton, OR Lines: 58 Approved: compilers@ima.UUCP In-Reply-To: <816@ima.ISC.COM> In article <816@ima.ISC.COM> you write: >Dale Worley writes: >>Assembler is still important, and its supporting tools should be as >>rich as those for an HLL, but the area in which it can be economically >>uses is gradually shrinking. > >Shrinking, indeed, but still most of the market. The following programs >all have two things in common: < list of products that I wish I had royalties to :-) > >Those two things are: > 1) They are the most widely used programs in the world, and > 2) They're all written in assembler >And a third thing is: > 3) They wouldn't have become #1 if not for #2 I agree with number 3, but probably for an extremely different reason than the original poster. Most people, when they focus on the differences between HLL's and assemblers, focus mainly on two issues: 1) Speed and size of code 2) Programmer productivity As we all know, assembly code is usually faster and smaller than an equivalent program written in an HLL (The usual caveats apply. We all have horror stories about incompetent programmers, I am sure). In general, the programmer productivity (measured in lines of code per diem) is about constant, so the language with the more functionality per line of code provides more functionality in a shorter amount of time, right??? Well, maybe not. In my experience, people who design code expecting to use assembler design much different products from those who design expecting to use HLL's. Being that it is harder to program in assembler, people who do so tend to avoid "creeping featuritis". In addition, they tend to use simple, statically sized data structures. As well, they tend to use simple (but sufficiently fast, given the bounded data size) algorithms. The end product is often more robust than an overengineered and overfeatured program done in the same amount of time because one has used an HLL. Does this always happen? No. But in most cases, the time saved in HLL's is not spent in more design or testing. It's usually spent in getting one more whizzy for marketing in (and probably incorrectly at that). In any case, because changing assembler is so hard, more time usually goes in up front in designs targeted in assembler in the first place, and the product provided is in the form of a small set of orthogonal utilities which are pieced together to form a powerful environment. Sound familiar? Too bad it doesn't happen all that often in more products. Frank Adrian Mentor Graphics, Inc. P.S. I will not, however, say that I would be willing to go back to the days of all assembly coding. Besides myself being lazy when doing the "grunt work" of coding, there are some products which deserve all the bad design they get. -- Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.EDU Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | bbn}!ima Please send responses to the originator of the message -- I cannot forward mail accidentally sent back to compilers. Meta-mail to ima!compilers-request