Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
Re: AGC was: Re: inner classes not possible,(in objc) right?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AGC was: Re: inner classes not possible,(in objc) right?




On 4 Apr 2005, at 00:11, Helge Hess wrote:

On Apr 4, 2005, at 1:01, Marcel Weiher wrote:

Remember: the runtime is where the music is, the "language" bit of Objective-C is just a little bit of syntactic sugar thrown on top.


I'm slightly confused. Didn't you just explain that the 'language' is more than just the syntax?

Yes, and this applies to Objective-C just as any other language. Except that semantically, Objective-C is just plain old C, the "language" part of Objective-C (you did notice the quotes?) doesn't add any semantics to C (apart maybe from static type checking of message sends, but that is a compile-time only feature).


Again, the semantics are in the runtime, and that is not a language- level feature, it is just a plain C library, and can be used pretty much 1:1 from plain C (without the "Objective" syntax extensions).

It is probably helpful to not think of Objective-C as a language at all, but as an object execution engine to which different languages can be attached (incidentally, this is how Squeak is referred to in the book describing its internals). As long as you agree on basic object layout and how message-sending works, the language doesn't really matter.

The difficulty most bridges have to overcome is that the languages involved don't agree on this. Otherwise, you really could have Java and Objective-C (amongst others) transparently bridged.


Once stuff is compiled, as long as it interoperates with objc_msgSend(), who cares what syntax you used to specify it?

Well, if there is "language level GC", you would need to type the stack, registers etc. So you couldn't just rely on objc_msgSend as the lowest common denominator?

One of the difficulties with "language level GC"...


Could be Objective-Assembler for all anyone would know...


Isn't that called CLR? ;-)

Not really. It is any old assembly language enriched with a message- send mechanism.


However, you are absolutely right that the "Objective-C" runtime certainly can be seen as a very lightweight CLR, and I don't see why, for example, gcj couldn't be modified to emit objects/code compatible with this runtime.

Cheers,

Marcel

p.s.: For a good discussion about syntactic sugar and other programming language concepts, I recommend: "Concepts, Techniques, and Models of Computer Programming", by Peter van Roy and Seif Haridi. ( http://www.info.ucl.ac.be/people/PVR/book.html ). Actually, I found this a very insightful and inspiring read. Alas, the pre-print PDF seems to have disappeared...

--
Marcel Weiher                Metaobject Software Technologies
email@hidden        www.metaobject.com
Metaprogramming for the Graphic Arts.   HOM, IDEAs, MetaAd etc.
        1d480c25f397c4786386135f8e8938e4


_______________________________________________ Do not post admin requests to the list. They will be ignored. Objc-language mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: Dietmar Planitzer <email@hidden>)
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: Marcel Weiher <email@hidden>)
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: Dietmar Planitzer <email@hidden>)
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: "James B. Tuley" <email@hidden>)
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: Dietmar Planitzer <email@hidden>)
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: Marcel Weiher <email@hidden>)
 >Re: AGC was: Re: inner classes not possible,(in objc) right? (From: Helge Hess <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.