On Tue, Jun 28, 2005 at 03:20:01PM -0400, Robert Dewar wrote: > Andrew Pinski wrote: > > >No it is not. It was when it was designed yes but since the C standard has > >come out and the aliasing rules really show that it is not a high level > >assembler language any more. > > Even when it was designed there was more abstraction than you think (e.g. > cannot convert *char value to *int, cannot compare addresses in different > allocated objects).
Correct on the former point, wrong on the latter. That is, C originally required a flat address space; the rule about comparing addresses in different allocated objects was added later to allow C to support segmented architectures (C existed for a long time before the ANSI standard came out).