Path: utzoo!attcan!uunet!husc6!cs.utexas.edu!ut-emx!juniper!olorin
From: olorin@juniper.uucp (David Weinstein)
Newsgroups: comp.lang.forth
Subject: Re: Forth and Functional Languages
Summary: Efficiency still counts
Keywords: Compilers are not perfect, and machines are not infinitely fast...
Message-ID: <4889@juniper.uucp>
Date: 25 Sep 88 13:06:38 GMT
References: <8809092121.AA09902@jade.berkeley.edu> <1625@crete.cs.glasgow.ac.uk> <7122@well.UUCP> <1643@crete.cs.glasgow.ac.uk>
Reply-To: olorin@juniper.UUCP (David Weinstein)
Organization: Austin UNIX Users' Group, Austin, TX
Lines: 38


In article <1643@crete.cs.glasgow.ac.uk> orr@cs.glasgow.ac.uk (Fraser Orr) writes:
>There are two possibilities for what MLL stands for: Medium level language;
>Machine level language. The latter I agree is a fair catagorisation of forth.
>In fact that is what I've been saying all along. To say though that this is 
>a great thing is not very sensible. It is clear that the purpose of a
>programming language is to make the machine easier to use without loosing
>any machine function (which can most certainly be done in practice)

No. Or I'll make it a challenge. Pick a high-level language, and a common CPU
for which there are programmers working in assembly regularly. Now, chose a
problem. While the HLL programmer may finish first, a good assembly language
programmer will produce *much* more efficient code. Furthermore, conventional
languages can't work in many areas (do you want to explain why you need 4 more
inches of space on the board to hold all the libraries your compiler linked in
along the way... :-)

The attitude, "If the program written in an HLL isn't fast enough then my
compiler isn't good enough, and if my compiler is good enough but it's still
too slow I'll buy a new machine", (which is a paraphrasing of a comment I
found on comp.lang.misc a week or so ago) is one of the things that disturbs
me most about CS departments (or at least the ones I've been in a position to
observe). Quite simply...you can't really do that in the real world, with
finite resources. Upper management in many cases will find your programming
time a more reasonable expense then replacing the computer you just got with
a faster one (and compiler revisions are infrequent at best...and remove old
bugs simply to replace them with a host of new bugs). I shudder when I think
the CS students who *don't* work in the real world while pursuing a degree, 
and face a dreadful shock when they get out of the ivory tower. 




-- 
Dave Weinstein
Internet: olorin@walt.cc.utexas.edu
UUCP: {ames,utah-cs,uunet}!ut-sally!ut-emx!{walt.cc.utexas.edu,juniper}!olorin
GEnie: DHWEINSTEIN