Article View: pl.comp.lang.c
Article #267809Re: Ciemna strona C++
From: Marcin ‘Qrczak’ Kowalczyk
Date: Sat, 24 Nov 2007 15:35
Date: Sat, 24 Nov 2007 15:35
53 lines
4304 bytes
4304 bytes
Dnia 24-11-2007, So o godzinie 14:31 +0000, Sektor van Skijlen pisze:
> Ktoś mi mówił - nie wiem, czy nie Qrczak - że ta składnia taka miała
> początkowo być tylko składnią pośrednią, a jako user-friendly składnia miało
> być opracowane co innego. No ale podobno jakoś zaczęli używać tego języka w
> tej składni wewnętrznej i nikomu się już nie chciało pisać normalnej składni.
Nie pamiętam, czy o tym mówiłem.
W pracach naukowych były używane dwie składnie: jedna do zapisu
programu, M-expressions (m = meta):
http://en.wikipedia.org/wiki/M-expression
a druga do zapisu danych przetwarzanych przez program, S-expressions
(s = symbolic). Początkowo elementy list w S-expressions były oddzielane
przecinkami, a nie spacjami. M-expressions można kodować w S-expressions.
Oryginalna praca McCarthy’ego o Lispie z roku 1960 jest tutaj:
http://www-formal.stanford.edu/jmc/recursive.html
albo w oryginalnej typografii wcześniejsza wersja, 1959:
http://www.informatimago.com/develop/lisp/small-cl-pgms/aim-8/aim-8.html
> Efekt jest taki, że może jakby ktoś zrobił z tego sensowną składnię,
> to może i Lisp przyjąłby się bardziej. A tak - cóż.
Nieprawda. Powstał język Dylan, nawet Apple go promował. Semantykę ma
podobną do Lispa, ale składnię do Pascala czy Ady (trochę rozwlekłą,
ale poza tym to całkiem miły język). Jest jednak o wiele mniej popularny
niż Common Lisp.
Lispowcy używają tego jako kanonicznego argumentu za składnią Lispa.
Ale ja składni Lispa nie lubię.
> Poza tym, Java nie jest wcale taka znów dynamiczna. Nie widzę w tym względzie
> żadnych większych różnic od C++.
Różnica jest zasadnicza. Bibliotekę Javy można owinąć w interfejs innego
języka programowania polegając wyłącznie na informacji dostępnej w czasie
wykonania. Podobnie jak w wielu innych językach. Można zobaczyć, jakie są
w niej klasy, jakie one mają metody, wywoływać metody po nazwie znanej
w czasie wykonania, przekazywać obiekty nie znając statycznie ich typu.
W C++ niczego takiego nie ma i biblioteki trzeba owijać nie dość,
że na etapie kompilacji, to jeszcze ręcznie opisując interfejs
każdej biblioteki - nie da się przeiterować po wszystkich elementach
definiowanych przez bibliotekę oraz poznać ich interfejs ani w czasie
wykonania, ani kombinacją szablonów i makr w czasie kompilacji.
W C++ nie można też złapać wyjątku i np. przekazać go do innego wątku
bez statycznej znajomości jego typu.
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID:
<1195918508.27382.40.camel@qrnik>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Marcin ‘Qrczak’ Kowalczyk <qrczak@knm.org.pl> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Sat, 24 Nov 2007 16:35:08 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 78 Message-ID: <1195918508.27382.40.camel@qrnik> References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> NNTP-Posting-Host: hjd150.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1195918853 17084 79.187.237.150 (24 Nov 2007 15:40:53 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Sat, 24 Nov 2007 15:40:53 +0000 (UTC) In-Reply-To: <fi9ckc$2u5$1@kujawiak.man.lodz.pl> X-Mailer: Evolution 2.12.1 PLD Linux Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit