eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingpryszcze... › Re: pryszcze...
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: