-
Data: 2017-12-01 13:21:11
Temat: Re: Architektura aplikacji - powody wyłączania dll z exe
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Friday, December 1, 2017 at 1:23:11 AM UTC+1, AK wrote:
> Użytkownik "M.M." <m...@g...com> napisał:
>
> > Pytasz dlatego, żeby wiedzieć, czy mam podstawy aby ustalić czego kompilator
> > (bez względu na użyty algorytm) nie może (bez ryzyka) odrzucić? Nie mam takich
podstaw.
>
> Ok. No to po krótce.
> Nie kompilator ale linker (kiedys byl to osobny program) m atu glownie "do
czynienia".
> Akurat na DOS/Windows format *.lib-a to po prostu zbior *.obj-tow.
> obj to kompilat powstajacy z np. (jednego lub wielu) *.c
> Ten kompilat to po prostu bytecode, ale nie scalony - czyli skladajacy sie z
segmentow kodu
> i danych i slownika symboli dla linkera (zmanglowane nazwy funkcji, zmiennych itp)
> W obj-cie nie ma podzialu na funkcje. sa tylko bloki kodu i danych. "Standardowo"
linker w ogole nie
> wie
> nic o funkcjach. On tylko laczy porzez symbole bloki kodu i danych w gotowy *.com
czy *.exe
> To powoduje ze gdy ktos w takim *.c umiesci 80% funcji to nawet jesli uzyje w
kodzie docelowym
> tylko jednej z nich (i to bez zaleznosci) to dolinkowany zostanie i tak caly kod
(segment CODE)
> w ktorym znajduje sie ta funkcja. Dlatego dobrze jest (i tak sie robi) tworzyc
wiele obj-tow
> nawet jesli funkcje z jednego sa od siebie neizalezne.
Chodź szczegółów nie znam, to ogólnie tak to sobie wyobrażałem i
coś podobnego dawno temu czytałem.
> Tak bylo drzewiej (na DOS i WIndows).
Czyli teraz się pozmieniało.
> Dzis jest lepiej bo i obj juz dawno porzestal byc surowy/standardowy i mozna wiele
informacji do
> niego
> dowalic (chocby symbole dla debuggera, demangling itp) i linkowanie na poziomie
funkcji dzis ni4
> jest nowina/
> Ale i tak to bardzo compiler-specific i wciaz dobrze jest stosowac zasade wielu
neizaleznych
> obj-tow.
> Tyle ze kiedyc obj-ty mozna bylo linkowac teoretycznie dowlonym linkerem (dobze o
tym wiedza
> Clipperowcy
> gdy stosowalismy Borlandowskiego szybkiego i prostego tlinka zamiast
Clipperowskiego plinka), ale
> dzisiaj
> linkery staly sie juz wlasciwie czescia kompiltatora z w/w powodow.
Rozumiem. Teraz niekoniecznie jest tak źle jak kiedyś, ale standardy
poszły do kosza. Dziękuję za wyjaśnienia.
Niepokoi mnie tylko jedno. W językach takich jak C, C++ , Pascal i w
kilku innych, można zrobić:
var = foo() // trudna do oszacowana wartość
var(); // wywołanie funkcji
Wiem że taka praktyka programistyczna jest bardzo zła, ale formalnie
poprawna. Jak więc linkier / kompilator może ustalić, że pewne funkcje
z libów można pominąć?
Pozdrawiam
Następne wpisy z tego wątku
- 01.12.17 16:42 fir
- 01.12.17 20:14 Roman Tyczka
- 02.12.17 00:11 M.M.
- 02.12.17 02:02 fir
- 02.12.17 08:59 AK
- 02.12.17 09:15 AK
- 02.12.17 09:24 AK
- 02.12.17 12:15 fir
- 02.12.17 12:43 fir
- 02.12.17 16:12 AK
- 02.12.17 16:15 AK
- 02.12.17 16:26 fir
- 12.09.18 19:55 s...@g...com
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 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??
Najnowsze wątki
- 2025-02-14 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-14 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-14 Re: Dlaczego nie było (pełzającego) zamachu stanu? Bo minister Bodnar już "zawiesił" prokuratora Ostrowskiego
- 2025-02-14 e-paper
- 2025-02-14 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-14 Warszawa => International Freight Forwarder <=
- 2025-02-14 Olsztyn => Sales Specialist <=
- 2025-02-14 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-14 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-02-14 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-14 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-02-14 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-02-14 Ściemniacze na parkingach
- 2025-02-13 kilka pytań o klimę
- 2025-02-13 genialny pomysł