|Assembly language programming preferable to HLL ??? decwrl!nsc!nsta!instable.ether!orr (Orr Michael) (1986-12-03)|
|Re: Assembly language programming preferable to HLL ??? watmath!watnot!ccplumb (Colin Plumb) (1986-12-03)|
|Re: Assembly language programming preferable to HLL ??? harvard!seismo!utah-cs!shebs (1986-12-04)|
|Re: Assembly language programming preferable to HLL ??? harvard!dartvax!uvm-gen!cavrak (1986-12-05)|
|Re: Assembly language programming preferable to HLL ??? decvax!wanginst!infinet!rhorn (1986-12-11)|
|Date:||Wed, 3 Dec 86 23:49:23 est|
|From:||Colin Plumb <watmath!watnot!ccplumb>|
|Organization:||U. of Waterloo, Ontario|
In article <277@ima.UUCP> Orr Michael writes:
> Have you seen an article in "Computer Language" magazine
>of Oct. 86 about "Universal assembly language" ?
Yes, I have. I don't intend to be too hostile, but I laughed when I read it.
"Computer Language" seems to need better articles/editing.
> This article claims that it is (always/usually) better to
>use assembly language rather than HLL. (any). This is based on the
> 1. The ONLY siginificant advantage of HLL is a shorter CODING time.
> 2. Design, documentation, testing time is (almost) the same in both cases.
> 3. The assembly program will run 2-5 times faster.
> 4. So, after enough runs of the program the coding time gap will be
> swallowed. From then on, the assembly program gains non-stop.
> Seems to me that this does not hold water.
> 1. No mention of changes/maintenance issues anywhere.
> 2. I strongly question ALL of the above assumptions.
> 3. As one of the compiler writers for NS , If assembler programs,
> as a rule, ran 2 times faster than our compiler,
> I would be greatly surprised and FIX THE COMPILER !
> The author also suggests a "UNIVERSAL ASSEMBLER" to run on many machines.
>I think FORTH already fits the bill, & has many other advantages.
> Any Comments, netlanders ?
You're right, it doesn't hold water. First, for the reasons you mentioned,
and secondly because a universal assembler is essentially impossible.
The advantage assembler has over HLL's is that the programmer can use
idiosyncrasies of the architecture to the best advantage. A compiler
can do this to some degree, but it would take a mighty good optimizer
to recognize when to use the string instructions some machines provide,
even though they can provide a very worthwhile > 2x speed increase.
A universal assembly language, on the other hand, doesn't let a programmer
use *any* tricks - and doesn't provide an optimizer which *can* use them.
In short, *slow*. Of course, you could always include a whole bunch of
common (but not universal) instructions (like, say, multiply) as macros,
but then you're just chasing HLL's up the evolutionary tree. The basic
premise needs serious work.
P.S. I agree - for very tight control of the machine and good speed,
use Forth. It produces smaller code than a lot of compiled HLLs,
is fast enough for most purposes, and you, the programmer, know
*exactly* what's going on inside the machine. And, of course, you
can easily recode any critical bits into assembler.
-Colin Plumb (ccplumb@watnot.UUCP)
Return to the
Search the comp.compilers archives again.