Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ihnp4!inuxc!pur-ee!uiucdcs!uiucdcsm!mccaugh From: mccaugh@uiucdcsm.UUCP Newsgroups: comp.lang.c Subject: Re: short circuit evaluation (44 li Message-ID: <4700004@uiucdcsm> Date: Sat, 21-Feb-87 00:41:00 EST Article-I.D.: uiucdcsm.4700004 Posted: Sat Feb 21 00:41:00 1987 Date-Received: Mon, 23-Feb-87 02:27:45 EST References: <844@wanginst.EDU> Lines: 10 Nf-ID: #R:wanginst.EDU:844:uiucdcsm:4700004:000:670 Nf-From: uiucdcsm.cs.uiuc.edu!mccaugh Feb 20 23:41:00 1987 This is not submitted as a criticism to the foregoing erudite discussion of side-effects, but is rather an innocent question about C in particular: why does C refuse to abide by the associativity/precedence rules for expression- evaluation that even BASIC guarantees? I can well understand "optimization" as an excuse but can easily imagine cases where normally-evaluated expressions can crash a system when "optimized" for eavaluation without the programmer's express consent. Isn't it a little arbitrary for C to mnaipulate the parts of an expression to its satisfaction (or whim)? In particular, this renders the formal verification of C-code impractical.