-
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
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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
Najnowsze wątki
- 2024-12-30 Katowice => Key Account Manager (ERP) <=
- 2024-12-28 Śmiechu KOOOOOOPA ;-)
- 2024-12-29 Pomiar amplitudy w zegarku mechanicznym
- 2024-12-28 Antyradar
- 2024-12-28 Deweloper przegral w sadzie musi zwrócic pieniądze Posypia sie kolejne pozwy?
- 2024-12-28 Warszawa => Full Stack .Net Engineer <=
- 2024-12-28 Warszawa => Sales Assistant <=
- 2024-12-28 Warszawa => Programista Full Stack .Net <=
- 2024-12-28 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-28 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-12-28 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2024-12-28 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-12-28 Żerniki => Employer Branding Specialist <=
- 2024-12-28 ale zawziętość i cierpliwość
- 2024-12-27 most kilometrowy