-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!postnews.google.com!glegro
upsg2000goo.googlegroups.com!not-for-mail
From: Roman W <b...@g...pl>
Newsgroups: pl.comp.programming
Subject: Re: Składnia pętli (ogólnie i filozoficznie)
Date: Sat, 17 Mar 2012 09:19:18 -0700 (PDT)
Organization: http://groups.google.com
Lines: 93
Message-ID: <3360685.2549.1332001158521.JavaMail.geo-discussion-forums@vbbfw10>
References: <4f647cff$0$1273$65785112@news.neostrada.pl>
<jk221o$5ii$1@mx1.internetia.pl>
NNTP-Posting-Host: 91.125.135.206
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1332001488 21573 127.0.0.1 (17 Mar 2012 16:24:48 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Sat, 17 Mar 2012 16:24:48 +0000 (UTC)
In-Reply-To: <jk221o$5ii$1@mx1.internetia.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=91.125.135.206;
posting-account=EexxQQoAAAAkOfWz0VZRKLcHNpXJZLB9
User-Agent: G2/1.0
Xref: news-archive.icm.edu.pl pl.comp.programming:196126
[ ukryj nagłówki ]On Saturday, March 17, 2012 1:01:53 PM UTC, bartek szurgot wrote:
> On 03/17/2012 01:01 PM, slawek wrote:
> > Czy jest jakiś ładny sposób zapisu if-wewnątrz-for (ew. innych pętli)
> > takich, że jest GWARANTOWANE przeniesienie if przed for w wyniku
> > kompilacji, tak aby test if wykonywał się tylko jeden raz - a nie np. 10
> > milionów razy - i to bez sięgania po optymalizację?
> >
> > Jeżeli jest coś takiego for{ if } -- czyli instrukcja warunkowa
> > wewnątrz pętli, np.:
> >
> > for (i = 0; i < 10; i++)
> > if(x > y)
> > {
> > ...a...
> > ...b1...
> > ...c...
> > ...d...
> > ...e1...
> > ...f...
> > }
> > else
> > {
> > ...a...
> > ...b2...
> > ...c...
> > ...d...
> > ...e2...
> > ...f...
> > }
> >
> > Oczywiście kumaty kompilator (x i y są ustalone z zewnątrz) powinien to
> > sobie zoptymalizować do
> >
> > if
> > {
> > for
> > for
> > }
> >
> > Ale jak to zapisać bez potrzeby odwoływania się do mądrości kompilatora
> > i bez rozwlekania jak niżej?
> >
> > if(a > b)
> > for (i = 0; i < 10; i++)
> > {
> > ...a...
> > ...b1...
> > ...c...
> > ...d...
> > ...e1...
> > ...f...
> > }
> > else
> > for (i = 0; i < 10; i++)
> > {
> > ...a...
> > ...b2...
> > ...c...
> > ...d...
> > ...e2...
> > ...f...
> > }
> >
> > W kodzie źródłowym niepotrzebne są dublowane linie ...a... ...c...
> > ...d... ...f..., co jest nieprzyjemne jeżeli jest ich za mało aby robić
> > z nich procedurę (i nie chcemy mieć narzutów na call/ret - no, ale to
> > też powinien zoptymalizować kompilator) - a jednocześnie MUSZĄ one być
> > dokładnie takie same (i np. poprawka w jednym miejscu pociąga za sobą
> > poprawianie w tuzinie podobnych.
>
>
> poczytaj o metaprogramowaniu. w połączeniu ze wzorcem strategii, będzie
> to to, czego szukasz.
Tez bym tak zrobil, w polaczeniu z funckjami lambda z C++ 0x moze to byc ladne i
eleganckie rozwiazanie. Ale wtedy nadal bedzie mial narzut na wolanie funkcji, jezeli
kompilator nie zdecyduje sie na inlining funkcji (nie musi).
Jezeli to jest NAPRAWDE koniecznie zeby uniknac wolania funkcji, to pozostaja makra
preprocesora.
RW
Następne wpisy z tego wątku
- 17.03.12 21:34 slawek
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-05 Shrek, wzrośnie cena prądu :-)
- 2025-07-05 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-07-06 Płacić za wodę ze studni
- 2025-07-06 Kolejny inżynier...
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-04 od kiedy można obrażać Plastusia i do kiedy Batyra?
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=