Path: utzoo!attcan!uunet!cs.utexas.edu!yale!cmcl2!lanl!jlg From: jlg@lanl.gov (Jim Giles) Newsgroups: comp.lang.misc Subject: Re: C's sins of commission Message-ID: <65697@lanl.gov> Date: 13 Oct 90 20:43:18 GMT References: Organization: Los Alamos Natl Lab, Los Alamos, N.M. Lines: 21 From article , by pcg@cs.aber.ac.uk (Piercarlo Grandi): > [...] > I most strongly object to call this 'aggressive optimization'. It makes > 'aggressive optimization' look respectable. > > Aggressive optimization is where the optimizer rewrites your program in > a supposedly similar form behind your back. [...] > [...] >-Piercarlo "Peter" Grandi [...] Grandi comes up with this one periodically. I can never pin him down on a meaning. A compiler is a tool which transforms one representation of a program (the source) into a semantically equivalent form (the object code) in another language. If the compiler changes the semantics of the program during this process, it is _BROKEN_. The optimizer, as part of the compiler, must obey this same constraint. If the optimizer changes the semantics of a code, it is _BROKEN_. An optimizer may be as "aggressive" as the compiler implementor wants to make it - as long as it doesn't alter the semantics of the code it's translating. J. Giles