Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ll-xn!ames!oliveb!felix!chuck From: chuck@felix.UUCP (Chuck Vertrees) Newsgroups: comp.unix.questions,comp.edu,comp.lang.misc Subject: Re: Teaching Assembler on VAX (BSD 4.3) Message-ID: <2794@felix.UUCP> Date: Thu, 21-May-87 15:34:30 EDT Article-I.D.: felix.2794 Posted: Thu May 21 15:34:30 1987 Date-Received: Sat, 23-May-87 13:46:30 EDT References: <351@aucs.UUCP> <588@maccs.UUCP> <234@brandx.rutgers.edu> Reply-To: chuck@felix.UUCP (Chuck Vertrees) Organization: FileNet Corp., Costa Mesa, CA Lines: 41 Xref: mnetor comp.unix.questions:2471 comp.edu:402 comp.lang.misc:411 The original posting regarding the availability of an acceptable assembler for use in teaching an assembly language course seems to have sparked a discussion concerning the need to teach assembler at all. Some of the responses I have seen seem to imply that assembler is not needed at all, and doesn't need to be taught. I disagree. I think that is a very short sighted view and one that misses the whole point of a course like this. For the first two years in the real world (what ever that is), I wrote nothing but assembler. Since then I have extensively used many other languages, including C and Pascal. The initial heavy emphasis on assembler has had, I believe, a subtle but beneficial effect on my coding ability and style, regardless of the language I choose to use for a given task. The "unixness" of this forum really shows through in the type of comments that are made here. While unix may indeed be mostly written in C, and assembly is only used sporadically, that does not imply that one should not need to learn assembler. Yes, the computing environment is changing. We are being provided with more and better languages and the need to use assembler is being further reduced. But again, that does not imply that one should not need to learn assembler. In my view, the purpose of an assembler course at a two or four year school should not be to teach a specific assembly language, nor to teach a specific architecture, but to introduce students to yet another type of computer language that they may come across in their careers. The discipline required for proper assembly language programming is not the same as that required for programming in a higher level language. You have to know where your operands are, you have to know how you can operate on them, and you have to understand all the consequences of those operations. (Actually the same for any language, just more operations and consequences in assembler.) Using a macro package to hide some of this from you may be convenient, but if you still don't understand what is really happening, then that is dangerous, regardless of the language you may be using. And I guess this finally gets to the point of this whole message. I believe I am a better programmer for having learned and used assembler. The mind set required for proper assembly language programming has carried over into the other languages I now use. As a result, I feel I produce a better product for it. It doesn't mean that I think everything should be done in assembler. It does mean I think you can be a better (more rounded?) programmer for having been exposed to it.