Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!henry From: henry@utzoo.UUCP (Henry Spencer) Newsgroups: net.lang.c Subject: Re: unary + Message-ID: <6521@utzoo.UUCP> Date: Mon, 17-Mar-86 15:37:21 EST Article-I.D.: utzoo.6521 Posted: Mon Mar 17 15:37:21 1986 Date-Received: Mon, 17-Mar-86 15:37:21 EST References: <1227@mtx5a.UUCP>, <6831@boring.UUCP> Organization: U of Toronto Zoology Lines: 22 > ...if you do care [about order of evaluation] then you should be able > to specify it using parentheses... How do you tell order-of-evaluation-forcing parentheses from parentheses that are there just to get the precedence right? There is no practical way to write "a*(c+d)" without parentheses (or other annoying kludges). Yet optimizing this to "a*c + a*d" might well be useful in various situations. Parentheses already have a role: overriding default operator binding rules. Asking them to do two things at once would get messy. > ...I'm very much against optimisers that think they know better than you... Sometimes they *do* know better than you; that is exactly the point. They certainly know more than you about how to effectively exploit the underlying machine. They may well know more than you about the exact nature of the computation, e.g. if some parts of it are hidden inside macros for the sake of easy change and portability. And they don't have to worry about the other constraints, like readability and making sure that a messy formula really is right, that may limit what you write. -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry