🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.funkcyjne
Article #766

Re: j. funkcyjne - jakie zastosowania?

#766
From: RobertSzefler
Date: Wed, 04 Jan 2006 14:04
70 lines
4095 bytes
Tomasz Zielonka wrote:

>>>W Haskella nie wpakowano takich srodkow, a jest calkiem, calkiem.
>>>Zgadzam sie, ze wsparcie mogloby byc lepsze, ale np. jakosc kompilatorow
>>>chyba i tak przebija to, co teraz mamy np. dla C++. No dobra, C++ to
>>>zupelnie inna kategoria. Bjarne (prawie) wygral konkurs "Zaprojektuj
>>>jezyk programowania, ktorego nikomu nie uda sie zaimplementowac".
>>
>>Nie da się zaimplementować = w praktyce nie da się napisać dobrego 
>>parsera w rozsądnym czasie (ze względu na głęboko poj***** gramatykę). 
>>Jak to się przebrnie, to dalej konstrukcja kompilatora jest typowa dla 
>>języków imperatywnych 
> 
> Nie do konca. Jest gorzej, bo gramatyka C++ (a nawet C) jest
> niejednoznaczna i kompilator wlasciwie musi robic jednoczesnie analize
> skladniowa i sprawdzanie typow. Wez chocby taki przyklad:

Właśnie o tym pisałem :)

>     ...
> 
>     void f(void)
>     {
>         ...
>         x * y; // co to za konstrukcja?

Eee... a tu jest jakaś niejednoznaczność? To jest po prostu mnożenie x 
przez y na moje oko. Dereferencja y nie jest problemem bo prowadzi 
natychmiast do błędu... jakiś kruczek tu jest?

>     }
> 
> To C. W C++ jest jeszcze gorzej, chocby ze skladowymi klas, np.

No to wiadomo. Bjarne should burn in hell. Żartowałem.

> czy to wartosc, typ czy szablon:
>     T<41234>::member
> 
> Do "nie da sie" dodalbym jeszcze nieslychanie skomplikowane reguly
> semantyczne jezyka (widocznosc nazw, konkretyzacja szablonow,
> rozwiazywanie wolan przeciazonych funkcji, ...), rozdzielna kompilacja
> dla szablonow, itp.

True, true... Ale mam wrażenie że np. współczesne dialekty FORTRANu 
(-a?) są też bardzo skomplikowane... Albo Java 5...

>>- sprawdzanie typów (duużo prostsze bądź co bądź niż w Haskellu),
> 
> W Haskellu jest to przynajmniej dobrze sformalizowane.

Co nie znaczy że prostsze, IMHO wręcz przeciwnie.

>>Co więcej, istnieje spora ilość prac teoretycznych świadcząca o tym,
>>że implementacja kompilatorów jęz.  funkc. to w istocie rzeczy to samo
>>(np. odpowiedniość między SSA i CPS lub postacią A-normalną).
> 
> Mowisz o jezyku funkcyjnym z ewaluacja "non-strict"?

Eee... dobre pytanie. Tak z głowy Ci nie powiem, ale mam wrażenie, że te 
analogie można wyabstrachować od kolejności ewaluacji przez analizę 
strictness (aargh! jak to jest po polsku?) i odpowiednie transformacje 
na CPS (czy jakiejś tam innej strukturze tego typu). Oczywiście 
strictness analysis jest tragicznie skomplikowana (eee... w ogólności 
chyba nawet nierozstrzygalna???), co wskazuje nota bene na to, że 
implementacja "mocnych" języków funkc. nie jest wcale taka prosta... 
Ogólnie zob. (jeśli nie czytałeś)

http://citeseer.ist.psu.edu/kelsey95correspondence.html
http://www.ccs.neu.edu/scheme/pubs/pldi-fsdf.pdf
Technical Details
Message-ID: <dpgkkg$1ksh$1@news2.ipartners.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!not-for-mail
References: <dpc61g$f0l$1@news.onet.pl> <dpdvtq$oss$1@nemesis.news.tpi.pl> <slrndrn602.61b.tomasz.zielonka@localhost.localdomain> <slrndrn661.61b.tomasz.zielonka@localhost.localdomain> <dpg8ns$52m$1@nemesis.news.tpi.pl> <slrndrnguv.6eu.tomasz.zielonka@localhost.localdomain> <dpghlc$1j3v$1@news2.ipartners.pl> <slrndrnj9i.6j9.tomasz.zielonka@localhost.localdomain>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!not-for-mail
From: RobertSzefler <NOSPAMrszeflerNOSPAM@murator.com.pl>
Newsgroups: pl.comp.lang.funkcyjne
Subject: Re: j. funkcyjne - jakie zastosowania?
Date: Wed, 04 Jan 2006 15:04:00 +0100
Organization: Internet Partners
Lines: 70
Message-ID: <dpgkkg$1ksh$1@news2.ipartners.pl>
References: <dpc61g$f0l$1@news.onet.pl> <dpdvtq$oss$1@nemesis.news.tpi.pl> <slrndrn602.61b.tomasz.zielonka@localhost.localdomain> <slrndrn661.61b.tomasz.zielonka@localhost.localdomain> <dpg8ns$52m$1@nemesis.news.tpi.pl> <slrndrnguv.6eu.tomasz.zielonka@localhost.localdomain> <dpghlc$1j3v$1@news2.ipartners.pl> <slrndrnj9i.6j9.tomasz.zielonka@localhost.localdomain>
NNTP-Posting-Host: intranet.murator.com.pl
Mime-Version: 1.0
X-Trace: news2.ipartners.pl 1136383440 54161 217.153.39.22 (4 Jan 2006 14:04:00 GMT)
X-Complaints-To: abuse@ipartners.pl
NNTP-Posting-Date: 4 Jan 2006 14:04:00 GMT
In-Reply-To: <slrndrnj9i.6j9.tomasz.zielonka@localhost.localdomain>
X-Accept-Language: en-us, en
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit