-
31. Data: 2011-05-24 22:17:48
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: " " <f...@N...gazeta.pl>
A.L. <l...@a...com> napisał(a):
> On Tue, 24 May 2011 22:57:29 +0100, Andrzej Jarzabek
> <a...@g...com> wrote:
>
> >On 24/05/2011 22:42, A.L. wrote:
> >>
> >> Obiektowosc w Simuli, Smalltalku, C++ i Objective-C oparta jest na
> >> klasach. To jest "object model". Programowanie obiektowe wcale na
> >> klasach oparte byc nie musi. Dlatego tez jak sie mowi "model obiektowy
> >> Simuli" to sie wlasnie ma na mysli klasy.
> >>
> >> Reszta to "programming model", czyli w gruncie rzeczy to co sie
> >> okreslajako "syntactic sugar" - przy pomocy jakiej konwencji zapisuje
> >> sie program. Podobnei sprawa dynamicznego czy nei dynamicznego
> >> typowania to "type model" nic nie majacy wspolnego z "object model". I
> >> znow, "model simuli" to nie zadne "messages" a wolania funkcji. Ale to
> >> model programowania, a nie model obiektowosci.
> >>
> >> Rzeczywiscie, tworcy Objective-C (Brad Cox, scisle rzec biorac) byli
> >> pod wrazemiem jezyka Smalltalk to i takie mechanizmy zaprojektowali w
> >> jezyku. Ale latwo sprawdzic (na przyklad ogladajac wynik dzialania
> >> preprocesora wczesnych wersji Obejctive-C) ze owe "messages" byly
> >> szybko i skutecznie tlumaczone na wolania funkcji w C. Co zreszta, o
> >> ile sobie przypominam, napisane jest w ksiazce Brada Coxa.
> >
> >Nie będę się kłócił, ale spytam z ciekawości: te komunikaty nie są
> >dynamicznie dispatchowane?
>
> W Smalltalku i owszem. A w Objective-C mozna bylo tak i tak. Ale nie
> wiem jak teraz jest, bo Objectiwe-C uzywalem w latach 1985 - 1988 i
> mam wiadomosci neiswieze.
>
> A.L.
zamiast
"call_method(arguments)" jak w c,
czy
"call_mehod(&object, arguments)" jak w c++
jest
call_method(&object, "method name", arguments)
gdzie pierwsze pole pod &object ("isa") ma wskaznik na slownik nazw ("SEL")
i wskaznikow ("IMP") - odszukuje sie i dopiero odpala - doskonale prosto
i jasno jest to opisne w podanym przeze mnie ebooku "obj-c internals"
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
32. Data: 2011-05-24 22:19:02
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: Zbigniew Malec <a...@i...invalid>
On Tue, 24 May 2011 23:05:08 +0100, Andrzej Jarzabek wrote:
> Ale ja akurat używałem takiego nieprecyzyjnego, potocznego znaczenia,
> które obejmuje też "model of object-oriented programming". Możemy na tym
> zakończyć?
No jasne, że możemy. Pisałem tego posta równolegle z innym postem A.L, stąd
taka redundancja.
--
Pozdrawiam
Zbyszek Malec
-
33. Data: 2011-05-24 22:36:08
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: " " <f...@N...gazeta.pl>
>
> zamiast
> "call_method(arguments)" jak w c,
> czy
> "call_mehod(&object, arguments)" jak w c++
> jest
> call_method(&object, "method name", arguments)
zamiast tego ostatniego powinienem raczej napisac
universal_call(&object, "method name", arguments)
bo to jest jedna funkcja przez ktora 'wszysko przechodzi'
choc nie wiem jak to wyglada w asmie - bez przerwy wywolania
tej jednej funkcji dla roznych wskaznikow na stingi?
wygodne w dezasemblacji by bylo bo latwo sprawdzic nazwe kazdej
funkcji,
widac ze to spora warstwa nadbudwy bo jest to na kazde wywolanie
- mozna robic refleksje czyli manipulowac w runtime danymi w
tych slownikach SEL-IMP ale do czego powznego moze o sluzyc to
do koncanie wiem
tak samo mozna sprawdzic z asma w runtime, nazwe i
wylistowac metody kazdej instancji - ta rtti juz bardziej
moze sie przydac ale tez tak do konca nie wiem
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
34. Data: 2011-05-25 03:22:05
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: A.L. <l...@a...com>
On Tue, 24 May 2011 23:14:51 +0100, Andrzej Jarzabek
<a...@g...com> wrote:
>On 24/05/2011 22:59, A.L. wrote:
>> On Tue, 24 May 2011 22:57:29 +0100, Andrzej Jarzabek
>> <a...@g...com> wrote:
>>
>>> Nie będę się kłócił, ale spytam z ciekawości: te komunikaty nie są
>>> dynamicznie dispatchowane?
>>
>> W Smalltalku i owszem. A w Objective-C mozna bylo tak i tak. Ale nie
>> wiem jak teraz jest, bo Objectiwe-C uzywalem w latach 1985 - 1988 i
>> mam wiadomosci neiswieze.
>
>W Wikipedii jest napisane tak:
>"In Smalltalk and Objective-C, the target of a message is resolved at
>runtime, with the receiving object itself interpreting the message. A
>method is identified by a selector or SEL -- a NULL-terminated string
>representing its name -- and resolved to a C method pointer implementing
>it: an IMP.[5] A consequence of this is that the message passing system
>has no type checking. The object to which the message is directed -- the
>receiver -- is not guaranteed to respond to a message, and if it does
>not, it simply raises an exception."
>
>Z tego opisu wynika, że różni się to dość znacznie od tego, co jest w
>Simuli, obiektowym Pascalu czy C++. Ja sam nie znam się na tyle, żeby
>mieć jakieś zdanie na temat, czy tak jest rzeczywiście, czy nie.
O ile sobie przypominam, to nawet w 1988 roku mozna bylo robic tak jak
powyzej, czyli dynamicznie, albo statycznie. Ale nie pamietam jak. A
nie chce mi sie szuakc manuala w piwnicy...
A.L.
-
35. Data: 2011-05-25 05:46:55
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: " " <f...@N...gazeta.pl>
A.L. <l...@a...com> napisał(a):
> On Tue, 24 May 2011 23:14:51 +0100, Andrzej Jarzabek
> <a...@g...com> wrote:
>
> >On 24/05/2011 22:59, A.L. wrote:
> >> On Tue, 24 May 2011 22:57:29 +0100, Andrzej Jarzabek
> >> <a...@g...com> wrote:
> >>
> >>> Nie bÄdÄ siÄ kĹĂłciĹ, ale spytam z ciekawoĹci: te komunikaty nie
sÄ
> >>> dynamicznie dispatchowane?
> >>
> >> W Smalltalku i owszem. A w Objective-C mozna bylo tak i tak. Ale nie
> >> wiem jak teraz jest, bo Objectiwe-C uzywalem w latach 1985 - 1988 i
> >> mam wiadomosci neiswieze.
> >
> >W Wikipedii jest napisane tak:
> >"In Smalltalk and Objective-C, the target of a message is resolved at
> >runtime, with the receiving object itself interpreting the message. A
> >method is identified by a selector or SEL â a NULL-terminated string
> >representing its name â and resolved to a C method pointer implementing
> >it: an IMP.[5] A consequence of this is that the message passing system
> >has no type checking. The object to which the message is directed â the
> >receiver â is not guaranteed to respond to a message, and if it does
> >not, it simply raises an exception."
> >
> >Z tego opisu wynika, Ĺźe róşni siÄ to doĹÄ znacznie od tego, co jest
w
> >Simuli, obiektowym Pascalu czy C++. Ja sam nie znam siÄ na tyle, Ĺźeby
> >mieÄ jakieĹ zdanie na temat, czy tak jest rzeczywiĹcie, czy nie.
>
> O ile sobie przypominam, to nawet w 1988 roku mozna bylo robic tak jak
> powyzej, czyli dynamicznie, albo statycznie. Ale nie pamietam jak. A
> nie chce mi sie szuakc manuala w piwnicy...
>
> A.L.
mozna pobrac sobie IMP'a (ktory jest zwyklym adresem/wskaznikiem na
docelowa funkcje) i uzywac go bezposrednio - ale to jest traktowane
jako szuczka optymalizacyjna, normalnie wszystkie wywolania ida przez
te 'slowniki'
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
36. Data: 2011-05-25 08:20:48
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2011-05-24, A.L <l...@a...com> wrote:
[...]
> No dobrze, ale co ma to wspolnego z MODELEM OBIEKTOWOSCI?...
A.L., podaj po prostu przykład języka o innym modelu obiektowości niż
pochodzący z Simuli. Wtedy twoi rozmówcy będą widzieli o czym mówisz.
--
Secunia non olet.
Stanislaw Klekot
-
37. Data: 2011-05-25 09:30:29
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: Piotr Chamera <p...@p...onet.pl>
W dniu 2011-05-25 10:20, Stachu 'Dozzie' K. pisze:
> On 2011-05-24, A.L<l...@a...com> wrote:
> [...]
>> No dobrze, ale co ma to wspolnego z MODELEM OBIEKTOWOSCI?...
>
> A.L., podaj po prostu przykład języka o innym modelu obiektowości niż
> pochodzący z Simuli. Wtedy twoi rozmówcy będą widzieli o czym mówisz.
>
Javascript?
-
38. Data: 2011-05-25 14:03:12
Temat: Re: Co ma Objective-C czego nie ma C++?
Od: A.L. <l...@a...com>
On Wed, 25 May 2011 08:20:48 +0000 (UTC), "Stachu 'Dozzie' K."
<d...@g...eat.some.screws.spammer.invalid> wrote:
>On 2011-05-24, A.L <l...@a...com> wrote:
>[...]
>> No dobrze, ale co ma to wspolnego z MODELEM OBIEKTOWOSCI?...
>
>A.L., podaj po prostu przykład języka o innym modelu obiektowości niż
>pochodzący z Simuli. Wtedy twoi rozmówcy będą widzieli o czym mówisz.
Prosze bardzo. Ada na przyklad. Ackolwiek specyfikacja jezyka mowi o
"class", nei sa to klasy w sensie Simuli:
A programmer studying the object-oriented features of
Ada 9X [5], maybe astonished by the use of the term class,
i.e. a set of types sharing common properties and closed
under derivation, and by the lack of a syntactic constmct
called class or object.
Moreover, whereas classes, types and modules share the
same syntactic construct in the Simula-based object-oriented
languages (like Eiffel) or extensions (like C++),
Ada 9X makes a point of keeping the package as basic construct
for modularity and encapsulation, and the type as construct
for describing the properties of objects. It would have
been misleading to introduce class types or typed packzzges,
since both of these extensions would have introduced adhoc
and redundant constructs in the language.
Ada is not the only language to keep this distinction. Other
modern programming languages such as Modula-3 [9] and
Oberon-2 [23] incorporate the same design choice. However,
whereas these programming languages are built on flat
namespaces, Ada is the only language to have enhanced the
concept of modularity to take object-oriented systems into
account for the management of the namespace with hierarchical
libraries.
...
Ada 9X refines the type derivation
mechanism by introducing tagged types and type extension.
A tagged type is a record type the derivatives of which
can be extended with additional components.
Working with Ada 9X classes
Author: Stéphane Barbey Swiss Federal Institute of Technology in
Lausanne, Software Engineering Laboratory, EPFL-DI-LGL, CH-1015
Lausanne, Switzerland
? Proceeding
TRI-Ada '94 Proceedings of the conference on TRI-Ada '94
ACM New York, NY, USA (C)1994
Podobnie jezyk Oberon (ten od Wirtha) ma obiektowosc oparta o "derived
types" i "tpe extension". Artykul jest tutaj
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1
.1.93.6273
Zrwszta, model Ady zostal wziety z idei Wirtha
Inny model to model oparty o prototypy, a najbardziej znanym
reprezentatnem ejst jezyk Self
http://labs.oracle.com/self/
http://labs.oracle.com/self/papers/self-power.html
A.L.