[cfe-dev] Even more clang ideas
cmh at me.com
Sun Aug 3 22:11:28 PDT 2008
On Aug 3, 2008, at 3:52 PM, John Engelhart wrote:
>> In fact, in Objective-C it is not possible to say "this method
>> returns an instance of specifically this class and no other class"
>> -- you can only say "this method returns an instance of this class
>> or any subclass."
> I disagree. Such things were possible in older compilers because of
> pointer rules. Type punning was always frowned upon, and is now
> strictly forbidden in C99. Except for 'union's, C doesn't really
> provide a means for multi-type pointer representations. It's not
> really a question of what proper OO design paradigm is, it's a
> question of "where the rubber meets the road": How do you represent
> the concept in C.
It doesn't matter how the concept is represented in C, because modern
Objective-C compilers are *not* simple translators from Objective-C to
C; they must treat the language as a language in its own right,
because it does add additional semantics atop C.
First and foremost an Objective-C compiler must understand and
preserve the semantics of the Objective-C language -- which includes
proper handling of subtype relationships within the class hierarchy.
More information about the cfe-dev