🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #28092

Re: Interpretowany czy kompilowany?

#28092
From: Stachu 'Dozzie' K.
Date: Mon, 23 May 2011 08:53
73 lines
4683 bytes
On 2011-05-22, Roman Dobosz <gryf_esm-no@spam-o2.pl> wrote:
> On Sat, 21 May 2011 18:41:00 +0000 (UTC)
> "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> wrote:
>
>> Idiom w programowaniu to wyrażenie (lub krótka konstrukcja w języku
>> programowania) mające znaczenie tylko w danym języku, na ogół trudne do
>> przełożenia na inny język za pomocą jednej instrukcji. Na przykład
>> idiomem w Pythonie jest konstruowanie tablicy za pomocą
>> "[?? for x in ??]", co się w Perlu przekłada jako "map { ?? } ??".
>
> To "coś" nazywa się list comprehension i jest konstrukcją języka,
> natomiast to co wołasz z Perla to funkcja, która istnieje również w
> Pythonie.

Ależ oczywiście. I użycie tej konstrukcji jest w Pythonie idiomem, który
w Perlu wyraża się nieco inną konstrukcją programistyczną. Dokładnie to
chciałem pokazać: że da się przetłumaczyć, że podobna długość i że inny
typ konstrukcji.

> List comprehension to nic innego jak tworzenie listy w pętli:
>
> result = []
> for i in ??:
>     result.append(i)
>
> bez konieczności wywoływania funkcji/bloku na każdym elemencie. Nie
> bardzo więc pasuje tu definicja idiomu. To raczej lukier składniowy.

Erm. Idiomem jest między innymi taki właśnie lukier.

>> W przypadku programowania, większość kodu to instrukcje warunkowe,
>> pętle, wywołania funkcji, ewentualnie definicje klas lub innych typów.
>> Idiomy pojawiają się dość rzadko i zwykle dają się przełożyć na krótkie
>> konstrukcje w innym języku, o ile język docelowy reprezentuje podobny
>> paradygmat programowania (np. [?? for x in ??] wymaga dużo kodu
>> w C (inny paradygmat), ale w Perlu to już wywołanie jednej funkcji
>> wbudowanej).
>
> Fajowo. Szkoda, że nie podałeś jak to się ma do statycznie typowanego
> języka, jakim jest C, a zamiast tego sięgnąłeś po dynamicznie
> typowanego Perla :)

Fajowo, tylko że C reprezentuje trochę inny paradygmat programowania,
jeśli nie zauważyłeś.

>> Biorąc pod uwagę że program składa się tylko w małej części z idiomów,
>> a w dużej części z pozostałych, typowych dla danego paradygmatu
>> instrukcji, oraz że idiomy się tłumaczy raczej na krótkie sekwencje,
>> program w Perlu i taki sam w Pythonie będą miały podobną długość.
>
> I różną czytelność.

Zależy kto pisze. Widziałem kod w Pythonie mniej czytelny od kodu
w Perlu.

>> Tak więc zwięzłość składni, która wyraża się właśnie obecnością idiomów,
>> nie przekłada się specjalnie na długość kodu.
>
> W tym cały urok Pythona. Nie dość, że kod w nim pisany jest
> stosunkowo zwięzły, to na dodatek franca jest czytelniejsza niż
> niejeden inny podobnego typu język.

#define "podobnego typu"

> Po tej całej dyskusji odnoszę wrażenie, że nie miałeś za dużo do
> czynienia z Pythonem.

A ja po twojej wypowiedzi, że ty nie miałeś za dużo do czynienia
z czymkolwiek innym.

-- 
Secunia non olet.
Stanislaw Klekot
Technical Details
Message-ID: <ird79e$7oa$1@speranza.aioe.org>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.uni-stuttgart.de!news.belwue.de!news-zh.switch.ch!kanaga.switch.ch!switch.ch!feeder.news-service.com!feeder.news-service.com!94.75.214.39.MISMATCH!aioe.org!.POSTED!not-for-mail
References: <iqmlha$r29$1@news.onet.pl> <4dcee603$1$2437$65785112@news.neostrada.pl> <iqo0j1$g9u$1@news.onet.pl> <87boz3anea.fsf@smsnet.pl> <iqqk2o$oh7$1@news.onet.pl> <0601cb5b-befa-46ba-9d1c-f105c81369fe@r35g2000prj.googlegroups.com> <iqrlte$rfe$1@news.onet.pl> <87k4dqe6vw.fsf@smsnet.pl> <iqt8gb$lo1$1@solani.org> <e423ccad-b001-4931-8e98-68982533d79f@d15g2000yqn.googlegroups.com> <iqtsq9$j2e$4@solani.org> <4d8313d9-cc85-4065-b94d-c7433e6d51de@p6g2000vbn.googlegroups.com> <iqugpk$vbu$3@solani.org> <64a9b1f5-e71a-4b1e-b54b-029a032d6a17@x1g2000yqb.googlegroups.com> <ir58gg$me$1@speranza.aioe.org> <2f93f4ca-ccb1-42a5-b199-2d9902ee8629@l18g2000yql.googlegroups.com> <ir90vs$nd8$1@speranza.aioe.org> <20110522185658.fe4600a2.gryf_esm-no@spam-o2.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.uni-stuttgart.de!news.belwue.de!news-zh.switch.ch!kanaga.switch.ch!switch.ch!feeder.news-service.com!feeder.news-service.com!94.75.214.39.MISMATCH!aioe.org!.POSTED!not-for-mail
From: "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Newsgroups: pl.comp.lang.python
Subject: Re: Interpretowany czy kompilowany?
Date: Mon, 23 May 2011 08:53:02 +0000 (UTC)
Organization: Aioe.org NNTP Server
Lines: 73
Message-ID: <ird79e$7oa$1@speranza.aioe.org>
References: <iqmlha$r29$1@news.onet.pl> <4dcee603$1$2437$65785112@news.neostrada.pl> <iqo0j1$g9u$1@news.onet.pl> <87boz3anea.fsf@smsnet.pl> <iqqk2o$oh7$1@news.onet.pl> <0601cb5b-befa-46ba-9d1c-f105c81369fe@r35g2000prj.googlegroups.com> <iqrlte$rfe$1@news.onet.pl> <87k4dqe6vw.fsf@smsnet.pl> <iqt8gb$lo1$1@solani.org> <e423ccad-b001-4931-8e98-68982533d79f@d15g2000yqn.googlegroups.com> <iqtsq9$j2e$4@solani.org> <4d8313d9-cc85-4065-b94d-c7433e6d51de@p6g2000vbn.googlegroups.com> <iqugpk$vbu$3@solani.org> <64a9b1f5-e71a-4b1e-b54b-029a032d6a17@x1g2000yqb.googlegroups.com> <ir58gg$me$1@speranza.aioe.org> <2f93f4ca-ccb1-42a5-b199-2d9902ee8629@l18g2000yql.googlegroups.com> <ir90vs$nd8$1@speranza.aioe.org> <20110522185658.fe4600a2.gryf_esm-no@spam-o2.pl>
NNTP-Posting-Host: LXkp9TUlRyLrpHg8HMW90Q.user.speranza.aioe.org
Mime-Version: 1.0
X-Complaints-To: abuse@aioe.org
User-Agent: slrn/pre0.9.9-111 (Linux)
X-Notice: Filtered by postfilter v. 0.8.2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit