-
X-Received: by 10.49.48.19 with SMTP id h19mr1038qen.38.1389790900934; Wed, 15 Jan
2014 05:01:40 -0800 (PST)
X-Received: by 10.49.48.19 with SMTP id h19mr1038qen.38.1389790900934; Wed, 15 Jan
2014 05:01:40 -0800 (PST)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!usenet.blueworldhosting.com!feeder01.bluewo
rldhosting.com!peer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.
highwinds-media.com!6no11528206qao.1!news-out.google.com!gg4ni4085qab.0!nntp.go
ogle.com!6no11528202qao.1!postnews.google.com!glegroupsg2000goo.googlegroups.co
m!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 15 Jan 2014 05:01:40 -0800 (PST)
In-Reply-To: <a...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=195.124.137.140;
posting-account=mvBzhgoAAADiziO82aLj4VEpjexQv3Cn
NNTP-Posting-Host: 195.124.137.140
References: <lb0plj$jfj$1@node2.news.atman.pl>
<1...@g...com>
<lb0rbd$l6n$1@node2.news.atman.pl>
<7...@g...com>
<lb0sk5$mgl$1@node2.news.atman.pl>
<9...@g...com>
<o...@4...com>
<a...@g...com>
<d...@g...com>
<c...@g...com>
<p...@n...chmurka.net>
<a...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3...@g...com>
Subject: Re: pryszcze...
From: Adam Klobukowski <a...@g...com>
Injection-Date: Wed, 15 Jan 2014 13:01:40 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5129
X-Received-Body-CRC: 2282656679
Xref: news-archive.icm.edu.pl pl.comp.programming:204935
[ ukryj nagłówki ]On Wednesday, 15 January 2014 10:03:05 UTC+1, Maciej Sobczak wrote:
> W dniu środa, 15 stycznia 2014 08:03:30 UTC+1 użytkownik Paweł Kierski napisał:
>
> > Statyczna kontrola typ�w daje du�e pole do popisu dla optymalizacji
> > przez kompilator. Vide - rozwijanie szablon�w w C++.
>
> Rozwijanie szablonów nie za bardzo ma związek z systemem typów. Raczej z brutalnym
inline'owaniem a to można robić również z typami dynamicznymi.
>
> Natomiast statyczny system typów jest użyteczny chociażby przez sam fakt, że można
z góry wygenerować odpowiednie instrukcje asemblera, które będą na pewno dobre do
wykonania jakiejść operacji. Np. dodawanie zmiennych, o których z góry wiadomo, że są
32-bitowymi liczbami całkowitymi, można zwykle zrobić jedną instrukcją zamiast
tysiącem instrukcji, które najpierw pracowicie sprawdzają, jakie typy mają te zmienne
i czy przypadkiem nie chodzi o sklejanie napisów.
>
> Na dalszym poziomie statyczny system typów można wykorzystać do *eliminacji*
operacji, nawet takich, które są wymagane przez język. Np. jeśli w danym języku jest
sprawdzanie zakresów przy indeksowaniu tablic, to statyczny system typów cząsem
pozwala kompilatorowi tego sprawdzenia nie robić. Podobnie z innymi sytuacjami
brzegowymi, jak dzielenie przez 0, itp.
Nowoczesne silniki JS działające w trybie JIT generują kod funkcji JS dla zadanych
typów wejściowych, i jeśli typ danych wejściowych sie zmienia, generują nową wersję
kodu. Czyli działa to trochę jak templatowanie kodu w C++ czy dżeneriksy w Javie.
Dodatkowo, kod ten specjalnie nie jest generowany od razu optymalnie - silnik
analizuje kolejne przebiegi wywołania funkcji i optymalizuje ją z czasem. Dzięki
temu, potencjalnie może wygenerować lepszy kod niż kompilator języka statycznego
który ma skończony czas na wygenerowanie kodu i nie jest w stanie poznać
harakterystyki jego użycia.
> Problem z językiem C polega na tym, że no niby ma statyczny system typów, ale tak
kiepski, że nie da się go na tym "dalszym poziomie" wykorzystać ani do optymalizacji
ani do wykrywania potencjalnych błędów.
C ma system typów skrojony do swoich zastosowań, a przypomnijmy - było to pisanie
jąder systemów operacyjnych. Dlatego typy w C są maksymalnie zbliżone do sprzętu.
Przez długi czas nie było wystarczająco dobrych języków/kompilatorów do pisania
innych programów, dlatego wykorzystywano do tego C. Dziś takie języki/kompilatory
istnieją i faktycznie C ogranicza się do pisania jąder i/lub bibliotek
niskopoziomowych.
> > Tak na marginesie - nie spodziewa�em si� n-tej dyskusji o wy�szo�ci
> > �wi�t Bo�ego Narodzenia nad �wi�tami Wielkiej Nocy.
>
> Dlaczego? Podobnie jak te swięta, tego typu dyskusje są zjawiskiem okresowym. :-D
Podsumowując: statyczne jak i dynamiczne systemy typów mają swoje zady i walety.
Porównywanie ich bez podawania konkretnych zastosowań nie ma sensu - inaczej będziesz
pisał pakiet biurowy, inaczej sterownik niskopoziomowy a jeszcze inaczej firmware
urządzenia.
AdamK
Następne wpisy z tego wątku
- 15.01.14 14:22 g...@g...com
- 15.01.14 14:49 Adam Klobukowski
- 15.01.14 15:09 Maciej Sobczak
- 15.01.14 15:17 Maciej Sobczak
- 15.01.14 16:24 A.L.
- 16.01.14 06:59 Adam Klobukowski
- 16.01.14 08:48 Andrzej Jarzabek
- 16.01.14 08:51 Andrzej Jarzabek
- 16.01.14 09:51 Maciej Sobczak
- 16.01.14 12:40 firr
- 17.01.14 01:24 A.L.
- 17.01.14 01:31 bartekltg
- 17.01.14 02:46 Stachu 'Dozzie' K.
- 17.01.14 03:00 bartekltg
- 17.01.14 03:09 Stachu 'Dozzie' K.
Najnowsze wątki z tej grupy
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- 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
Najnowsze wątki
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Czy grupa p.s.prawo przetrwa najbliższe wybory (prezydenta)?
- 2025-03-19 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-19 Czy "niedopuszczony pełnomocnik" jest w prawie się na to skarżyć jak "świadek" zmarła bez zostawienia mu takiej instrukcji?
- 2025-03-19 Kraków => Business Development Manager - Network and Network Security
- 2025-03-19 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-19 Kraków => IT Expert (Network Systems area) <=
- 2025-03-19 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad