Article View: pl.comp.lang.asm
Article #31Re: ASM to fajna sprawa
From: Stachu 'Dozzie' K.
Date: Tue, 14 Mar 2006 10:01
Date: Tue, 14 Mar 2006 10:01
75 lines
5337 bytes
5337 bytes
On 14.03.2006, Artur Kowalski <a.kowalski@cti.mikrotel.pl> wrote:
>
> Użytkownik "Stachu 'Dozzie' K." <dozzie@dynamit.im.pwr.wroc.pl.nospam>
> napisał w wiadomości news:slrne1c4ok.bae.dozzie@hans.zsh.bash.org.pl...
>> On 14.03.2006, Daniel P. <nako@go2.i.do.not.like.spam.pl> wrote:
>>> Użytkownik Stachu 'Dozzie' K. <dozzie@dynamit.im.pwr.wroc.pl.nospam>
>>> w wiadomości <slrne1bumf.am6.dozzie@hans.zsh.bash.org.pl> napisał:
>>>> Tak? A jak zapewnisz automatyczne wykonanie destruktora? A co
>>>> z polimorfizmem? A realokacja obszaru używanego do trzymania danych, gdy
>>>> obecny zrobi się za mały? A przestrzenie nazw? Wszystko makrami zrobisz?
>>>> Ile z tego będzie trzeba wstawiać ręcznie w każdym miejscu użycia?
>>>
>>> A czy naprawdę w każdym programie używasz tych wszystkich technik?
>>
>> Nie. Tam, gdzie tego nie używam, używam C.
> Sam dobierasz narzedzia do skali zadania, a innym zabraniasz.
Że co robię? Gdzie ja komukolwiek zabraniam czegokolwiek? Ja tylko
wyjaśniam, gdzie jest C++, a gdzie nie. I że C++ nie jest takim
masmem na sterydach.
>>> IMHO w C++ jedynym poważnym usprawnieniem było wprowadzenie
>>> czegoś takiego jak string. Tego tylko brakowało mi w C.
>>
>> To jakoś mało używasz C++, IMO. Mnie się podoba cała masa kontenerów
>> (biblioteka standardowa), odseparowanie reprezentacji danych od operacji
>> na nich wykonywanych, zwiększenie "code reusability" (OOP i szablony)
>> i coś, co się nazywa algorytmy uogólnione (#include <algorithm>).
[...]
>>> Do czego innego służy asembler i do czego innego służą języki wyższego
>>> poziomu.
>>
>> Zgadza się. I zupełnie inna jest konstrukcja języka tu i tam, czego
>> niektórzy nie mogą zrozumieć i uparcie twierdzą, że assembler nie różni
>> się za bardzo od C++.
> To Ty istoty sporu nie zrozumiałeś - w assemblerze mozna pisac tak samo
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> jak innych językach - kwestia makr.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Znowu ROTFL. I jak chcesz samymi makrami symulować klasy z obiektami?
A obliczenia leniwe? A funkcyjne? A co z programowaniem deklaratywnym?
Aha, i doczytaj o programowaniu funkcyjnym (albo funkcjonalnym; polska
terminologia nie jeszcze tu nie okrzepła) i deklaratywnym.
Hint: Haskell, SML, Prolog.
Albo nie, nawet nie. Pokaż mi, jakbyś chciał zrobić choć część kodu
pisanego w Perlu, Tclu albo Rubym. Przykładów poszukaj w sieci.
> C++ nie zwalnia od myślenia,
> assembler zmusza do myślenia to jedyna zasadnicza różnica.
Dla kogoś, kto nie używał C++, to i owszem, to jest jedyna większa
różnica. Dla kogoś, kto pisał w obu, C++ to coś znacznie więcej.
>>> Asembler stosuje się wtedy, gdy naprawdę zależy nam na szybkości
>>> działana,
>>> ponieważ tylko wtedy możemy zoptymalizować program tak, aby działał on
>>> możliwie najszybciej.
>>
>> Z tego co wiem, kompilator radzi sobie z optymalizacją dużo szybciej,
>> efektywniej i bardziej przenośnie od człowieka. Co zresztą dyktuje
>> zdrowy rozsądek: optymalizator pisał cały sztab ludzi stosujących
>> wszystkie brudne tricki, jakie da się wykorzystać.
> Brudne tricki kolidują z przenośnością, można je 'uaktywniać' w C,
> zlikwidowano to całkowicie w C++. Optymalizator dysponuje
> tylko określonym zbiorem reguł. Prawdziwa optymalizacja
> to zmiana algorytmu, a nie wyrzucenie zbędnych operacji.
> Typowe to np. wywalenie jakiejś instrukcji z wnętrza pętli
> na zewnątrz - w wielu przypadkach kompilator nie ma prawa
> tego zrobić np. w przypadku wywolania funkcji.
I co to ma wspólnego z optymalizacją na poziomie kodu assemblera?
--
Feel free to correct my English
Stanislaw Klekot
Technical Details
Message-ID:
<slrne1d5mo.f5t.dozzie@hans.zsh.bash.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<dove53$oto$1@inews.gazeta.pl> <1hxuveusyewma$.dlg@takeda.tk.invalid> <gophi.pcla.1135824238@news.chmurka.net> <19gt62gras201.dlg@takeda.tk.invalid> <dp0qoe$90r$1@inews.gazeta.pl> <1ryj9votzqtrw$.dlg@takeda.tk.invalid> <hb3ar1hk8g7uhut5ssro8qgsopejodn042@4ax.com> <ducrju$dos$1@inews.gazeta.pl> <slrne0jtl4.isp.dozzie@hans.zsh.bash.org.pl> <dun8fv$1it$1@inews.gazeta.pl> <slrne0uap2.384.dozzie@hans.zsh.bash.org.pl> <dunhv6$m3f$1@atlantis.news.tpi.pl> <slrne0ujul.3od.dozzie@hans.zsh.bash.org.pl> <dv3kh0$iad$1@nemesis.news.tpi.pl> <slrne1arl3.9jm.dozzie@hans.zsh.bash.org.pl> <dv4q9i$es3$1@inews.gazeta.pl> <slrne1bumf.am6.dozzie@hans.zsh.bash.org.pl> <dv522a$6hq$1@nemesis.news.tpi.pl> <slrne1c4ok.bae.dozzie@hans.zsh.bash.org.pl> <dv634m$phl$1@atlantis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: "Stachu 'Dozzie' K." <dozzie@dynamit.im.pwr.wroc.pl.nospam> Newsgroups: pl.comp.lang.asm Subject: Re: ASM to fajna sprawa Date: Tue, 14 Mar 2006 10:01:32 +0000 (UTC) Organization: Dialog Net Lines: 75 Message-ID: <slrne1d5mo.f5t.dozzie@hans.zsh.bash.org.pl> References: <dove53$oto$1@inews.gazeta.pl> <1hxuveusyewma$.dlg@takeda.tk.invalid> <gophi.pcla.1135824238@news.chmurka.net> <19gt62gras201.dlg@takeda.tk.invalid> <dp0qoe$90r$1@inews.gazeta.pl> <1ryj9votzqtrw$.dlg@takeda.tk.invalid> <hb3ar1hk8g7uhut5ssro8qgsopejodn042@4ax.com> <ducrju$dos$1@inews.gazeta.pl> <slrne0jtl4.isp.dozzie@hans.zsh.bash.org.pl> <dun8fv$1it$1@inews.gazeta.pl> <slrne0uap2.384.dozzie@hans.zsh.bash.org.pl> <dunhv6$m3f$1@atlantis.news.tpi.pl> <slrne0ujul.3od.dozzie@hans.zsh.bash.org.pl> <dv3kh0$iad$1@nemesis.news.tpi.pl> <slrne1arl3.9jm.dozzie@hans.zsh.bash.org.pl> <dv4q9i$es3$1@inews.gazeta.pl> <slrne1bumf.am6.dozzie@hans.zsh.bash.org.pl> <dv522a$6hq$1@nemesis.news.tpi.pl> <slrne1c4ok.bae.dozzie@hans.zsh.bash.org.pl> <dv634m$phl$1@atlantis.news.tpi.pl> NNTP-Posting-Host: xdsl-2827.wroclaw.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1142330492 921 81.168.251.11 (14 Mar 2006 10:01:32 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Tue, 14 Mar 2006 10:01:32 +0000 (UTC) User-Agent: slrn/0.9.8.1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit