-
X-Received: by 10.31.147.83 with SMTP id v80mr360366vkd.0.1512130872058; Fri, 01 Dec
2017 04:21:12 -0800 (PST)
X-Received: by 10.31.147.83 with SMTP id v80mr360366vkd.0.1512130872058; Fri, 01 Dec
2017 04:21:12 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-medi
a.com!news.highwinds-media.com!g35no32886qtk.1!news-out.google.com!t48ni80qtc.1
!nntp.google.com!m31no32885qtf.0!postnews.google.com!glegroupsg2000goo.googlegr
oups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Fri, 1 Dec 2017 04:21:11 -0800 (PST)
In-Reply-To: <ovq7de$f0m$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.45.125;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.45.125
References: <0...@g...com>
<oukn36$l7m$1@node2.news.atman.pl>
<4...@g...com>
<oun2nc$r4t$1@node2.news.atman.pl>
<8...@g...com>
<ouviso$22u$1@node1.news.atman.pl>
<9...@g...com>
<1...@g...com>
<e...@g...com>
<ovgk2k$kc2$1@gioia.aioe.org>
<5...@g...com>
<ovnil0$ubp$1@gioia.aioe.org>
<4...@g...com>
<ovq7de$f0m$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c...@g...com>
Subject: Re: Architektura aplikacji - powody wyłączania dll z exe
From: "M.M." <m...@g...com>
Injection-Date: Fri, 01 Dec 2017 12:21:12 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4683
X-Received-Body-CRC: 2392869723
Xref: news-archive.icm.edu.pl pl.comp.programming:211810
[ ukryj 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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-12 Jak na naszych oczach odradza się cenzura :-)
- 2025-01-11 Koszty prowadzenia firmy za granicą
- 2025-01-11 19 migrantów
- 2025-01-11 300km/h
- 2025-01-11 Kongres USA uchwalił "Prawo babci Pawlakowej" na MTK [Lex Gradma Pawlak]
- 2025-01-11 Riga => Specjalista ds. public relations <=
- 2025-01-11 Przestępca wyborczy Musk nadciąga nad Tuskistan?
- 2025-01-11 Białystok => Delphi Programmer <=
- 2025-01-09 Jaka nawigacja z asystentem zmiany pasa ruchu?
- 2025-01-10 Coś dusi.
- 2025-01-09 akumulator napięcie 12.0v
- 2025-01-10 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-10 Warszawa => Software .Net Developer <=
- 2025-01-10 Białystok => Application Security Engineer <=
- 2025-01-10 Warszawa => System Architect (Java background) <=