Article View: comp.sys.mac
Article #34891Re: Rooms? (Was: Finder Improvements)
From: Peter Colby
Date: Mon, 28 Nov 1988 14:53
Date: Mon, 28 Nov 1988 14:53
60 lines
4379 bytes
4379 bytes
In article <6105@fluke.COM> mce@tc.fluke.COM (Brian McElhinney) writes:
>In article <10330083@eecs.nwu.edu> bob@eecs.nwu.edu (Bob Hablutzel) writes:
>> ... I'm sorry, and you can disagree, but there is _no way_ that
>>high level code can match the size and speed compactness of assembly language
>>programming. This has nothing to do with using tricks of the chip, or black
>>magic, but because high level languages require support routines and the
>>like which assembly language code can avoid.
>
>True enough, if you have an infinite amount of time; there is also _no way_
>that a team of programmers can develop and test code in the same amount of
>time using low-level tools (assembly language). You just can't manage a large
>amount of arbitrary complexity without high level tools. ...
>
>Assembly language is useful in it's place, but only there. I would wager that
>most of the speed and compactness improvements are due to better work habits
>forced on you by the lack of type checking, etc., of assembly language. The
>same skills would serve you just as well in any software environment.
>
Several comments.
1) OS 360 was written in assembly language. Even today there are not a
whole lot of programs equivalent in either size or complexity.
Remember, we're talking somewhere around 1965-1968. Read
"The Mythical Man Month" by ?? Brooks. The issue isn't complexity,
it's lines of code. In most cases you get more work per line of HOL
code than you do per line of assembly. The only reason HOLs are
considered an advantage is because most programmers are really coders
Automate coding from design specs and you lose all advantage of HOLs.
(Of course the "design language" now becomes the HOL and languages like
C, LISP, SMALLTALK etc become "assembly languages" and are inefficient
low level tools.)
2) One of the major savings in using assembly language IS due to "tricks
of the chip". I remember doing assembly programming on a CDC 6600
(1975). Two techniques in particular were used to speed up programs;
First, we coded inner loops to keep the entire intruction stream in
the instruction cache - no memory access (for instructions) - major
gain; second, we interleaved instructions to take advantage of mutually
independant asynchronous functional units - the units only synchronized
to access common registers - depending upon the task, this could gain
little to a lot.
3) The other major saving in using assembly language is "optimization". Yes,
having to include support code and other general library routines from
the compiler cuts down on code efficiency, but the major problem is that
most commercial compilers generate horrible code. Hand coding in assembly
makes up for the stupidity of compilers. Of course, good compilers can be
written but I suspect that the R&D effort involved would push the
potential selling price out of the reach of most buyers. However, take a
look at the IBM FORTRAN H (optimizing) compiler or the original PASCAL
compiler written specifically for the CDC 6600.
4) It's still a truism that appropriate algorithms buy you far more than
hand optimization. However, once you have a working program you can
substantially improve it's speed by analysing the bottlenecks and
recoding the critical procedures (or loops) in assembly language. As
an aside, the latest MacTutor has an interesting article on optimizing an
assembly language routine.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
UUCP: {sun,decvax,linus}!cvbnet!pcolby ||| "We has met the enemy and he is us."
UUCP: pcolby@robbie.prime.com ||| Pogo
CSNET: pcolby@robbie.prime.com |||
Technical Details
Message-ID:
<390@cvbnet2.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!watmath!clyde!att!rutgers!mit-eddie!bu-cs!mirror!rayssd!raybed2!cvbnet2!robbie!pcolbyReferences:
<6217@netnews.upenn.edu> <10330083@eecs.nwu.edu> <6105@fluke.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!clyde!att!rutgers!mit-eddie!bu-cs!mirror!rayssd!raybed2!cvbnet2!robbie!pcolby From: pcolby@robbie.prime.com (Peter Colby) Newsgroups: comp.sys.mac Subject: Re: Rooms? (Was: Finder Improvements) Message-ID: <390@cvbnet2.UUCP> Date: 28 Nov 88 14:53:58 GMT References: <6217@netnews.upenn.edu> <10330083@eecs.nwu.edu> <6105@fluke.COM> Sender: postnews@cvbnet2.UUCP Reply-To: pcolby@robbie.UUCP (Peter Colby) Organization: Computervision - a division of Prime Computer Lines: 60