Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!clyde!watmath!looking!brad From: brad@looking.UUCP (Brad Templeton) Newsgroups: comp.misc Subject: Re: Assembly Language Message-ID: <861@looking.UUCP> Date: Sun, 9-Aug-87 12:29:19 EDT Article-I.D.: looking.861 Posted: Sun Aug 9 12:29:19 1987 Date-Received: Sun, 9-Aug-87 23:07:08 EDT References: <892@edge.UUCP> Reply-To: brad@looking.UUCP (Brad Templeton) Organization: Looking Glass Software Ltd. Waterloo, Ontario Lines: 37 Assembler is useful, and in spite of what people say, it sometimes is the only way to do a job. There is an attitude that computers will always get bigger and faster, thus making them able to run compiled programs at the speed desired. There is partial truth to this, but often it causes more problems for software. Microsoft Basic would not be the #1 software product in history if it were not written in assembler. Lotus 1-2-3 would not be the top dollar software product in history if it were not written in assembler. Lotus Release 2 was still written in assembler. Release 3 is planned to be written in C, but that's still not out and it's going to be a lot bigger and a lot slower than Release 2. Compilers can optimize and sometimes produce better code for short stretches, but the real problem with every compiler I have seen is in the function calling and parameter passing. Compilers must devise a general scheme, and they all do it inefficiently. Assembler is harder, because it's easier to make little bugs like forgetting to pop a register. What we need are assemblers that can do certain checks. Things like balancing the stack, understanding data flow and optional type checking. We also need debuggers that can understand assembler programs in terms of logical units, to make single stepping easier. Yes, these are high level language features, but they can be applied to assembler without losing a smidgen of efficiency. I program in HLLs most of the time. But sometimes, to do the job the best way you possibly can, you code in assembler. -- Brad Templeton, Looking Glass Software Ltd. - Waterloo, Ontario 519/884-7473