eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › C is number one (znowu)
Ilość wypowiedzi w tym wątku: 49

  • 41. Data: 2020-07-11 23:26:21
    Temat: Re: C is number one (znowu)
    Od: Roman Tyczka <n...@b...no>

    On Sat, 11 Jul 2020 12:32:03 +0200 (GMT+02:00), slawek wrote:

    >> Nie jakiś tylko jakichś
    >
    > Coż, czyżbyś była młodą nauczycielką języka polskiego?

    Nie, w jakiś sposób zdałem maturę...

    --
    pozdrawiam
    Roman Tyczka


  • 42. Data: 2020-07-12 16:11:25
    Temat: Re: C is number one (znowu)
    Od: Roman Tyczka <n...@b...no>

    On Sun, 12 Jul 2020 16:08:53 +0200 (GMT+02:00), slawek wrote:

    > Java wyparła Delphi. Skutecznie.

    Tak, a TIRy, wyparły auta sportowe.

    hint:
    Delphi to desktop, Java to server side.

    --
    pozdrawiam
    Roman Tyczka


  • 43. Data: 2020-07-12 21:00:35
    Temat: Re: C is number one (znowu)
    Od: Maciej Sobczak <s...@g...com>

    > Powoływanie się na "smart pointery" w dyskusji o wskaźnikach to trochę jak
    rozważanie zakupu roweru stacjonarnego na wycieczki rowerowe albo do poruszania się
    po mieście. Niby też rower, ale jednak nie do końca.

    https://en.wikipedia.org/wiki/Pointer_(computer_prog
    ramming)

    "In computer science, a pointer is an object in many programming languages that
    stores a memory address."

    Wytłumacz mi teraz, dlaczego "smart pointer" to nie jest "pointer".

    > Smart pointerom bliżej koncepcyjnie do referencji, niż do wskaźników.

    To na czym polega różnica?

    Niektóre języki nazywają wskaźniki referencjami dla zmylenia przeciwnika, żeby się
    źle nie kojarzyło. Niektóre języki używają obydwu pojęć na różne rzeczy.

    Ale jeśli mówimy o koncepcjach, to na czym polega różnica?

    --
    Maciej Sobczak * http://www.inspirel.com


  • 44. Data: 2020-07-13 16:17:57
    Temat: Re: C is number one (znowu)
    Od: g...@g...com

    W dniu niedziela, 12 lipca 2020 21:00:37 UTC+2 użytkownik Maciej Sobczak napisał:
    > > Powoływanie się na "smart pointery" w dyskusji o wskaźnikach to trochę jak
    rozważanie zakupu roweru stacjonarnego na wycieczki rowerowe albo do poruszania się
    po mieście. Niby też rower, ale jednak nie do końca.
    >
    > https://en.wikipedia.org/wiki/Pointer_(computer_prog
    ramming)
    >
    > "In computer science, a pointer is an object in many programming languages that
    stores a memory address."
    >
    > Wytłumacz mi teraz, dlaczego "smart pointer" to nie jest "pointer".

    Jeśli chcesz dyskutować o tym, czy rower stacjonarny to też rower,
    albo czy motorower to też rower, albo czy hulajnoga to też rower,
    albo czy hulajnoga elektryczna to motorower, to musisz znaleźć sobie
    innego kompana do rozmowy, bo ja niestety nie mam na to czasu.

    > > Smart pointerom bliżej koncepcyjnie do referencji, niż do wskaźników.
    >
    > To na czym polega różnica?
    >
    > Niektóre języki nazywają wskaźniki referencjami dla zmylenia przeciwnika, żeby się
    źle nie kojarzyło. Niektóre języki używają obydwu pojęć na różne rzeczy.
    >
    > Ale jeśli mówimy o koncepcjach, to na czym polega różnica?

    Jeżeli naprawdę Cię to interesuje, to na tej stronie, do której podlinkowałeś, jest
    odpowiedź.

    Na przykład, jak sobie zerkniesz sekcję dotyczącą Javy, to tam przeczytasz:

    "Unlike C, C++, or Pascal, there is no explicit representation of pointers in Java.
    Instead, more complex data structures like objects and arrays are implemented using
    references. The language does not provide any explicit pointer manipulation
    operators."

    gdzie słowo "references" prowadzi do strony

    https://en.wikipedia.org/wiki/Reference_(computer_sc
    ience)

    na której możesz wyczytać, m.in.

    "[...] reference is often erroneously confused with a pointer or address, and is said
    to "point to" the data. However, a reference may also be implemented in other ways
    [...]"


  • 45. Data: 2020-07-13 20:49:12
    Temat: Re: C is number one (znowu)
    Od: Maciej Sobczak <s...@g...com>

    > > Wytłumacz mi teraz, dlaczego "smart pointer" to nie jest "pointer".
    >
    > Jeśli chcesz dyskutować o tym, czy rower stacjonarny to też rower,
    [...]

    To poszukam na grupie rowerowej.
    Natomiast tutaj pytałem o to, dlaczego smart pointer nie jest pointerem, bo zdaje się
    tak właśnie to określiłeś.

    > "Unlike C, C++, or Pascal, there is no explicit representation of pointers in Java.
    [...]

    A coś o smart pointerach tam jest?

    > "[...] reference is often erroneously confused with a pointer or address, and is
    said to "point to" the data. However, a reference may also be implemented in other
    ways [...]"

    Świetnie. Ale na stronie o pointerach jest, że to taki obiekt, który *zawiera* (ang.
    "stores") adres pamięci. Więc smart pointer, który *zawiera* adres, to według tej
    definicji pointer.
    Zgadzamy się?

    I czy różnica pomiędzy wskażnikiem a referencją sprowadza się do tego, że "may be
    implemented in other ways"? To słabo. Bo te pojęcia to są koncepty i nie powinno się
    ich uzależniać od tego, jak są zaimplementowane. Bo jeden język może mieć różne
    implementacje (łącznie z tak odległymi, jak interpreter vs. kompilator) i trochę
    głupio by było twierdzić, że w jednej Javie jest referencja a w drugiej Javie jest
    wskaźnik, podczas gdy dokładnie ten sam kod źródłowy robi to samo w obu Javach.

    Więc jak to jest? Kiedy jest wskaźnik a kiedy referencja?

    Aby wyjść do przodu z tą dyskusją, chętnie podrzucę, że to co w C++ jest nazywane
    referencją, bardziej zasługuje na nazwę alias. Wtedy oczyścimy pole do bardziej
    wyrafinowanego rozróżnienia pomiędzy wskaźnikiem a referencją. W szczególności
    zarówno jedno jak i drugie można skopiować, zachować lub przekazać. Ale czym się
    różnią?

    --
    Maciej Sobczak * http://www.inspirel.com


  • 46. Data: 2020-07-13 22:02:56
    Temat: Re: C is number one (znowu)
    Od: g...@g...com

    W dniu poniedziałek, 13 lipca 2020 20:49:14 UTC+2 użytkownik Maciej Sobczak napisał:
    > > > Wytłumacz mi teraz, dlaczego "smart pointer" to nie jest "pointer".
    > >
    > > Jeśli chcesz dyskutować o tym, czy rower stacjonarny to też rower,
    > [...]
    >
    > To poszukam na grupie rowerowej.

    Jeszcze po drodze możesz zahaczyć o grupę języka polskiego, żeby wypytać, czym jest
    analogia.

    > Natomiast tutaj pytałem o to, dlaczego smart pointer nie jest pointerem, bo zdaje
    się tak właśnie to określiłeś.

    Z dokładnie tych samych powodów, dla których rower stacjonarny to nie rower.

    Oczywiście jeżeli chcesz zająć stanowisko przeciwne, to masz do tego prawo.

    Słowa mają taki sens, jaki im nadamy. Jeżeli masz powody, żeby uznać, że rower
    stacjonarny to też rower, nie będę Ci stawał na przeszkodzie, bo mam lepsze rzeczy do
    roboty.

    > > "Unlike C, C++, or Pascal, there is no explicit representation of pointers in
    Java.
    > [...]
    >
    > A coś o smart pointerach tam jest?
    >
    > > "[...] reference is often erroneously confused with a pointer or address, and is
    said to "point to" the data. However, a reference may also be implemented in other
    ways [...]"
    >
    > Świetnie. Ale na stronie o pointerach jest, że to taki obiekt, który *zawiera*
    (ang. "stores") adres pamięci. Więc smart pointer, który *zawiera* adres, to według
    tej definicji pointer.
    > Zgadzamy się?

    Nie. Smart pointer to taki obiekt, który *zawiera* *wskaźnik*.

    O rowerze czasem się mówi "dwa kółka". Ale to nie oznacza, że rower stanowi zbiór
    dwóch kółek. Rower zawiera również inne istotne komponenty, bez których nie byłby
    rowerem.

    To zjawisko językowe nazywa się ogólnie metonimią, a nieco bardziej konkretnie -
    synekdochą.

    > I czy różnica pomiędzy wskażnikiem a referencją sprowadza się do tego, że "may be
    implemented in other ways"? To słabo. Bo te pojęcia to są koncepty i nie powinno się
    ich uzależniać od tego, jak są zaimplementowane.

    Nie. Referencja jest ogólniejszym pojęciem. Wskaźnik jest bardzo konkretnym pojęciem
    technicznym, silnie związanym z liniowością adresów na architekturze von Neumanna.
    Można powiedzieć, że pamięć adresowana liniowo stanowi ramę pojęciową dla wskaźnika.

    Bardziej zwariowany przykład referencji można znaleźć tutaj:
    https://www.youtube.com/watch?v=gG7uCskUOrA
    Aminokwasy niesione przez tRNA w cytoplazmie stanowią referencję odpowiednich
    trypleów zakodowanych w łańcuchu DNA/mRNA.

    Ale tutaj nie ma liniowych adresów. Rolę magistrali pełni cytoplazma, natomiast w
    charakterze adresowania masz przyciągania jonów i tego rodzaju mechanizmy.


  • 47. Data: 2020-07-14 12:01:52
    Temat: Re: C is number one (znowu)
    Od: g...@g...com

    W dniu poniedziałek, 13 lipca 2020 20:49:14 UTC+2 użytkownik Maciej Sobczak napisał:

    > [...]
    >
    > A coś o smart pointerach tam jest?

    Wszystko tam jest. Wystarczy przeczytać.
    Na podlinkowanej przez Ciebie stronie wiki.

    Wskaźniki vs. referencje:

    "A pointer is a simple, more concrete implementation of the more abstract reference
    data type. Several languages, especially low-level languages, support some type of
    pointer, although some have more restrictions on their use than others. While
    "pointer" has been used to refer to references in general, it more properly applies
    to data structures whose interface explicitly allows the pointer to be manipulated
    (arithmetically via pointer arithmetic) as a memory address, as opposed to a magic
    cookie or capability which does not allow such"

    Wskaźniki vs. smart pointery:

    "Since C++11, the C++ standard library also provides smart pointers (unique_ptr,
    shared_ptr and weak_ptr) which can be used in some situations as a safer alternative
    to primitive C pointers"

    gdzie "smart pointers" przenosi nas do odrębnej strony na wiki, gdzie można
    przeczytać:

    "In computer science, a smart pointer is an abstract data type that simulates a
    pointer while providing added features, such as automatic memory management or bounds
    checking"


  • 48. Data: 2020-07-14 20:59:59
    Temat: Re: C is number one (znowu)
    Od: Maciej Sobczak <s...@g...com>

    > Nie. Smart pointer to taki obiekt, który *zawiera* *wskaźnik*.

    Tego nie możemy zakładać, bo to szczegół implementacyjny. Smart pointer może sobie
    zawierać adres w jakiejś innej postaci, niż wskaźnik. Nie musi wskaźnika zawierać.
    To, co chciałem zaznaczyć odnosząc się do Twojej definicji, to fakt, że smart pointer
    też jest pointerem. Bo spełnia jego funkcjonalną definicję.

    Dlatego też analogia rowerowa była chybiona.

    > Nie. Referencja jest ogólniejszym pojęciem.

    Słusznie.

    > Wskaźnik jest bardzo konkretnym pojęciem technicznym, silnie związanym z
    liniowością adresów na architekturze von Neumanna. Można powiedzieć, że pamięć
    adresowana liniowo stanowi ramę pojęciową dla wskaźnika.

    Nie szedłbym tak daleko. W ogóle nie rozumiem, po co mieszasz tutaj architekturę von
    Naumanna. Na harwardzkiej nie ma wskaźników? Są.
    Liniowa pamięć też nie ma tutaj związku. W nieliniowej nie ma wskaźników? Są.
    Cytujesz losowe pojęcia.

    Rozróżnienie wskaźników od referencji jako ich bardziej niskopoziomowe wcielenie jest
    użyteczne (np. referencje w Javie mogą odnosić się do zdalnych obiektów, nie tylko do
    lokalnych i to sprawia, że referencje w Javie są konstruktem wyższego poziomu, niż
    wskaźniki w C). Ale w tych abstrakcyjnych definicjach nie widzę sensu odmawiania
    smart pointerom ich pointerowej "duszy" (nie żebym coś tam nawiązywał :-D ).

    Inaczej, krócej: jeżeli podzielimy te wszystkie obiekty na pointery i referencje, to
    smart pointery są w tej pierwszej grupie.

    --
    Maciej Sobczak * http://www.inspirel.com


  • 49. Data: 2020-10-05 12:36:10
    Temat: Re: C is number one (znowu)
    Od: Sushi Master <s...@s...master>

    Sat, 11 Jul 2020 11:45:19 -0700 (PDT)
    Maciej Sobczak <s...@g...com> napisał(a):


    > Ja nie kojarzę obecnie żadnego sensownego programu w Javie, który nazwałbym
    "aplikacją"
    > w sensie aplikacji desktop. Eclipse, choć się narzuca jako kandydat, to raczej
    przykład
    > na to, że Javie nie udało się tego zrobić.

    Z tej samej działki aplikacje JetBrains typu PHPStorm?

    SushiMaster

strony : 1 ... 4 . [ 5 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: