Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!unmvax!ncar!ames!amdcad!sun!pitstop!sundc!seismo!uunet!mcvax!ukc!etive!lfcs!db
From: db@lfcs.ed.ac.uk (Dave Berry)
Newsgroups: comp.lang.misc
Subject: Re: Assembly or ....
Keywords: Assembly
Message-ID: <1136@etive.ed.ac.uk>
Date: 5 Dec 88 18:33:07 GMT
References: <1388@aucs.UUCP> <407@ubbpc.UUCP> <6586@galbp.LBP.HARRIS.COM>
Sender: news@etive.ed.ac.uk
Reply-To: db@lfcs.ed.ac.uk (Dave Berry)
Organization: Laboratory for the Foundations of Computer Science, Edinburgh U
Lines: 38

In article <6586@galbp.LBP.HARRIS.COM> jsb@advdev.UUCP (Jeff Barber) writes:
>>In article <1388@aucs.UUCP>, 861087p@aucs.UUCP (A N D R E A S) writes:
>>> ... if it really worth it to spend time to learn assembly language.
>
>it's been my own experience that programmers
>who aren't comfortable with assembler never completely understand the
>subtleties of: pointer manipulations, type conversions between signed
>and unsigned, integer truncation and extension, structure padding, etc.

Several people have made this point.  You're all assuming that the
language you use affects the hardware directly, and that the hardware
is fairly conventional.  Several languages use abstract machines,
and it's much more important to know the architecture of the abstract
machine than the actual hardware it's implemented on.

In a general sense, it helps programmers in any language to know the
architexture of the underlying machine; whether that machine is
implemented in hardware or software doesn't make much difference.

Also, Pascal programs (for example) don't care much about type conversions
between signed and unsigned.  You only have to start worrying about
features at this level when your language supports them.

>This is okay, I guess, if you want to
>write nothing but COBOL applications for the rest of your life.

Or LISP, Pascal, ML, Icon, Prolog, etc. etc.

A well-rounded education in computers will include a variety of
language paradigms, including at least some assembler, and a good
amount of work on machine architectures.  You won't necessarily need
to learn assembler to program, but it may be helpful, and it's a good
idea as part of a general computer education.


Dave Berry,	Laboratory for Foundations of Computer Science, Edinburgh.
		db%lfcs.ed.ac.uk@nss.cs.ucl.ac.uk
		!mcvax!ukc!lfcs!db