Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site ncoast.UUCP
Path: utzoo!utcsrgv!garfield!philabs!cmcl2!seismo!harvard!godot!mit-eddie!genrad!decvax!cwruecmp!atvax!ncoast!bsa
From: bsa@ncoast.UUCP (Brandon Allbery (the tame hacker on the North Coast))
Newsgroups: net.unix-wizards,net.lang
Subject: Re:  smart compilers
Message-ID: <524@ncoast.UUCP>
Date: Tue, 1-Jan-85 16:49:43 EST
Article-I.D.: ncoast.524
Posted: Tue Jan  1 16:49:43 1985
Date-Received: Wed, 2-Jan-85 22:41:46 EST
References: <6599@brl-tgr.ARPA> <979@opus.UUCP> <6831@watdaisy.UUCP> <11496@gatech.UUCP>
Reply-To: bsa@ncoast.UUCP (Brandon Allbery (the tame hacker on the North Coast))
Organization: The North Coast Xenix System, Cleveland
Lines: 29

It occurs to me that there are two ways to look at optimizers:

	1) That an optimizer optimizes, not the language code, but ASSEMBLER
	   code, and hence does not need to follow the language standard;

	2) That an optimizer must follow the language standard exactly,
	   and hence should optimize the language code itself.

If you accept (1), as every optimizer I've seen is designed to do, you
are likely to see an optimizer that will occasionally fail.  If (2),
there is little optimization possible, especially in a language like
Pascal where you can't manipulate the machine directly.

All you who complain about optimizers breaking code:  look at the current
discussion of the correct optimization of a piece of ForTran code.  No one
has yet proposed an optimization (type 2) that does the same thing as the
original code.  And if it's hard in ForTran, how much harder in Assembler?

Let's face it, guys -- placing any limitations (i.e. standards) on a
programming language is going to make an executing program in that language
slower.  Optimizing is often simply ignoring some of the standards and
removing their effects from the generated code.

--bsa
-- 
  Brandon Allbery @ decvax!cwruecmp!ncoast!bsa (..ncoast!tdi1!bsa business)
	6504 Chestnut Road, Independence, Ohio 44131   (216) 524-1416
    Who said you had to be (a) a poor programmer or (b) a security hazard
			     to be a hacker?