eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingktóre języki 'historyczne' są ważne › Re: które języki 'historyczne' sš ważne
  • Data: 2011-02-02 22:07:46
    Temat: Re: które języki 'historyczne' sš ważne
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Feb 2, 5:31 pm, Jędrzej Dudkiewicz <jedrzej.dudkiew...@nospam-
    gmail.com> wrote:

    > Czyli tak jak bym się spodziewał. Bardzo śliczne. Co prawda wyklucza to,
    > możliwe w C++, indeksowanie pamięci stringami... czyż nie? :)

    Nie. :-)

    Pamiętaj, że nawet przy adresowaniu pamięci stringami musi istnieć
    jakieś mapowanie tych adresów na liczby - chociażby po to, żeby można
    było mieć ptrdiff_t, arytmetykę wskaźników, sizeof, itd. To wszystko
    jest ze sobą powiązane.
    W C++ istnieje też mniej lub bardziej zdefiniowany rzut wskaźnika na
    int i z powrotem, więc związek wskaźników z liczbami jakiś jest.
    Podobnie jest w Adzie, chociaż nie ma arytmetyki wskaźników.

    W każdym razie zarówno C++ jak i Ada starają się tak rozmyć pojęcie
    adresu, żeby niczego konkretnego nie sugerować. W praktyce i tak
    wiadomo, co to oznacza na normalnym sprzęcie, ale nie zamyka się drzwi
    dla różnych emulatorów czy innych maszyn wirtualnych, gdzie adres może
    oznaczać coś innego.
    Czyli w obu językach siła wyrazu jest podobna. Można swobodnie pisać w
    nich systemy operacyjne, można też wyobrazić sobie adresowanie
    stringami w emulatorze.

    Jest jednak pewna ciekawa różnica - w C++ nie ma osobnego pojęcia
    adresu, to jest wplecione w pojęcie wskaźnika void* i istnieje
    zastrzeżenie, że void* ma mieć taką samą reprezentację jak char*.
    Czyli adresy i wskaźniki to w zasadzie to samo, nie rozdziela się tych
    rzeczy.
    Natomiast w Adzie czegoś takiego nie ma - adres to wartośc typu
    System.Address, natomiast wskaźnik to tzw. "access value" i z adresem
    nie ma żadnego związku poza tym, że istnieją osobne operacje do ich
    wzajemnej konwersji. Nie ma wymagania na reprezentację, więc wskaźniki
    mogą być tłuste, albo np. wskaźniki na stos mogą mieć zupełnie inny
    format, niż wskaźniki na stertę (nawet na ten sam typ), itd. Czyli Ada
    ma tu nawet większą swobodę implementacyjną, bez poświęcania
    funkcjonalności.

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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: