-
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
Następne wpisy z tego wątku
- 02.02.11 22:07 Wojciech Jaczewski
- 02.02.11 23:10 A.L.
- 03.02.11 00:11 Wojciech Jaczewski
- 03.02.11 00:54 Andrzej Jarzabek
- 03.02.11 01:10 Andrzej Jarzabek
- 05.02.11 23:51 Michal
- 06.02.11 12:40 Michoo
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-10 wyobrazcie sobie ze
- 2024-06-10 malowanie samochodu
- 2024-06-10 News from Poland
- 2024-06-10 Czy na pewno będą CŁA na chińskie samochody?
- 2024-06-09 Dlaczego w Polsce sie nic nie udaje, na przykładzie niebieskiego lasera a teraz perskowitów
- 2024-06-09 Dlaczego w Polsce sie nic nie udaje, na przykładzie niebieskiego lasera a teraz perskowitów
- 2024-06-09 Wykrywanie przerwy w długim przewodzie zakopanym w ziemi.
- 2024-06-09 Czemu news.chmurka.nwt jest taki wolny?
- 2024-06-11 Funbox 3.0 zakres adresów DHCP
- 2024-06-11 Re: Funbox 3.0 zakres adresów DHCP
- 2024-06-09 Miernik szybkości netu
- 2024-06-11 Panele PV w pionie (prawie).
- 2024-06-11 czy ta grupa żyje?
- 2024-06-11 Warszawa => Senior React Native Developer <=
- 2024-06-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=