Article View: pl.comp.os.linux.programowanie
Article #60142Re: Jak zrobić program obliczający dużą silnię?
From: Marcin 'Qrczak' Kowalczyk
Date: Fri, 04 Nov 2005 11:30
Date: Fri, 04 Nov 2005 11:30
42 lines
3761 bytes
3761 bytes
Maciej Sobczak <no.spam@no.spam.com> writes:
> Chodzi mi o to, że dostęp z funkcji lokalnych do ich zewnętrznego
> zakresu *nie jest* (albo nie musi być) integralną częścią koncepcji
> funkcji lokalnych.
Dla mnie jest.
Poza tymi 408 anonimowymi funkcjami używającymi lokalnego środowiska
są 1004, które go nie używają i zostały przez kompilator wyniesione
na toplevel i zaalokowane statycznie. Bywa tak i tak, a Ty uwzględniasz
tylko tę łatwiejszą część.
> # the name space is not polluted with the names of entities that are
> supposed to be used only once
> # the "locality of reference" in the source code is higher
> # the code is potentially shorter and more expressive
To są powody, żeby używać funkcji lokalnych zamiast globalnych.
Nie są to powody, żeby zabierać tym funkcjom dostęp do lokalnego
środowiska.
Owszem, w C++ nie ma jak technicznie dać im tego dostępu, ale to
problem C++, nie mój. C++ samo się na to skazało przez nieuwzględnienie
odśmiecania i przez przymusowe niszczenie obiektów zawartych w zmiennych
lokalnych, nawet jeśli będą jeszcze potrzebne.
W modelu C++ można sobie wyobrazić tylko półśrodek: tzw. downward
closures, czyli dostęp do zewnętrznych nazw przez czas wykonywania się
zewnętrznego zakresu, po czym wykonanie lokalnej funkcji zaczyna mieć
zachowanie niezdefiniowane. Być może C++ kiedyś się tego dorobi
(z osobnym typem wskaźnika na takie funkcje). Mnie to nie zachwyci,
bo gdzie indziej od dawna dostępny jest ogólniejszy mechanizm.
Model C++ jest zakonserwowany w C++, a poza tym martwy: żaden
projektant innego języka go nie wybiera dla nowych projektów.
I bardzo dobrze.
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID:
<87mzkk8xc0.fsf@qrnik.zagroda>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<djfrn5$i55$1@nemesis.news.tpi.pl> <djnjtf$suk$2@nemesis.news.tpi.pl> <1i7bbr8l84m9o$.8ttxld9ccdq4.dlg@40tude.net> <djnq5h$8ae$1@atlantis.news.tpi.pl> <gmqro8ttahov.aorv2e8thz25.dlg@40tude.net> <87wtk0iiqw.fsf@qrnik.zagroda> <djq3rj$4fm$1@sunnews.cern.ch> <87y84fz1bn.fsf@qrnik.zagroda> <djqg9q$1sg$1@sunnews.cern.ch> <87ll0ezpyl.fsf@qrnik.zagroda> <djsle0$q36$1@sunnews.cern.ch> <877jbx7q2t.fsf@qrnik.zagroda> <dk4n41$aue$1@sunnews.cern.ch> <87vezdanl0.fsf@qrnik.zagroda> <dk9su1$6su$1@sunnews.cern.ch> <87k6fqeq35.fsf@qrnik.zagroda> <dkcps0$2vq$1@sunnews.cern.ch> <slrndmk3v4.p01.jajcus@serwis2.beta> <dkd731$2u6$1@sunnews.cern.ch> <87psphsc6n.fsf@qrnik.zagroda> <dkf5da$d8g$1@sunnews.cern.ch>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: Jak zrobić program
obliczający dużą silnię?
Date: Fri, 04 Nov 2005 12:30:07 +0100
Organization: Klub Nieszkodliwych Manjaków
Lines: 42
Message-ID: <87mzkk8xc0.fsf@qrnik.zagroda>
References: <djfrn5$i55$1@nemesis.news.tpi.pl> <djnjtf$suk$2@nemesis.news.tpi.pl> <1i7bbr8l84m9o$.8ttxld9ccdq4.dlg@40tude.net> <djnq5h$8ae$1@atlantis.news.tpi.pl> <gmqro8ttahov.aorv2e8thz25.dlg@40tude.net> <87wtk0iiqw.fsf@qrnik.zagroda> <djq3rj$4fm$1@sunnews.cern.ch> <87y84fz1bn.fsf@qrnik.zagroda> <djqg9q$1sg$1@sunnews.cern.ch> <87ll0ezpyl.fsf@qrnik.zagroda> <djsle0$q36$1@sunnews.cern.ch> <877jbx7q2t.fsf@qrnik.zagroda> <dk4n41$aue$1@sunnews.cern.ch> <87vezdanl0.fsf@qrnik.zagroda> <dk9su1$6su$1@sunnews.cern.ch> <87k6fqeq35.fsf@qrnik.zagroda> <dkcps0$2vq$1@sunnews.cern.ch> <slrndmk3v4.p01.jajcus@serwis2.beta> <dkd731$2u6$1@sunnews.cern.ch> <87psphsc6n.fsf@qrnik.zagroda> <dkf5da$d8g$1@sunnews.cern.ch>
NNTP-Posting-Host: paf87.warszawa.sdi.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1131103817 19074 217.96.225.87 (4 Nov 2005 11:30:17 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Fri, 4 Nov 2005 11:30:17 +0000 (UTC)
X-Face: .B/ouEO}=VFkSJWE}s0@!:diHI.Z,<Ilt`:~@*]7rnn^K_y"XV8AXf^E)x*|3yVg:$FCq0Y )iGn@Z[SOA<+p}TkAv'Lzu$w{z2?F);0Xt>`m}AqK#Vjuscq(Vf1B}H[)v\9tBN}>AdP,QSRbhO]=v 3?;I+cN/Z0HKPm_Eg99/pFrU!WfpjgQ!z":>A~qt0^4):0-UuPB(6^>j!mN$)RIb)rRhXeK:+MLPW[ RVb7Kepvby-ww6_zci7Yy_@IrWW
User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)
Cancel-Lock: sha1:MIGTv89h4aV+GmBVtUVnTwKI5V8=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit