Article View: pl.comp.lang.c
Article #829Re: Rezerwacja pamieci
From: Qrczak
Date: Sat, 24 Jan 1998 17:38
Date: Sat, 24 Jan 1998 17:38
51 lines
3542 bytes
3542 bytes
On Sat, 24 Jan 1998, Marek Kotowski wrote:
> > Przenosnosc w _wystarczajacym_ stopniu zapewnia samo C.
>
> Calkowita nieprawda.
> Mozna napisac kod poprawny w C, nawet w standardzie (tylko
> standardowe slowa kluczowe i standardowe funkcje biblioteczne),
> ktory nie bedzie przenosny do innych komputerow/kompilatorow, bo np.
> uzywa nieprzenosnie unii, zaklada okreslony znak zmiennej
> znakowej (char), zaklada pakowanie lub nie struktur, zaklada
> okreslony rozmiar i sposob traktowania struktur bitowych, przyjmuje
> okreslony porzadek obliczen (efekty uboczne) tam, gdzie
> jest on nieokreslony, bazuje na okreslonym uporzadkowaniu
> bajtow w slowie czy w podwojnym slowie.
> Wystarczy?
Nie zgodzę się z taką definicją przenośności. Przenośność nie musi
_uniemożliwiać_ napisania programu, który na różnych platformach różnie
się wykona. IMHO do przenośności języka wystarczy, żeby dało się w nim
pisać przenośne programy bez istotnej straty możliwości i wygody (i żeby
było jasno udokumentowane, które konstrukcje są przenośne).
Oczywiście im więcej konstrukcji zachowuje się tak samo na różnych
platformach, tym lepiej.
Stwierdzę nawet, że _nie da_ się napisać idealnie przenośnego języka
(który zapewniałby pewne minimum możliwości). Otóż w Unixach końce linii
plików tekstowych są zapisywane inaczej niż w DOSie. W obu systemach nie
ma formalnego rozróżnienia plików tekstowych i binarnych. Czy jeśli
język pozwala utworzyć plik tekstowy i pozwala odczytać plik binarny, to
jest automatycznie nieprzenośny?
Z innej dziedziny: Twierdzę, że HTML jest przenośny. Mimo że w różnych
przeglądarkach i w różnych trybach graficznych wygląda różnie. Istnieją
różne rozszerzenia HTMLa konkretnych przeglądarek - one są nieprzenośne,
ale nikt nie zmusza do ich stosowania. Używając standardowego HTMLa
można tworzyć strony, które w różnych warunkach będą różnie wyglądały
(nie da się inaczej!), ale każdy wygląd jest równie "poprawny" i HTML
jako taki jest przenośny.
> Znowu nieprawda. Jest dokladnie odwrotnie. Oczywiscie,
> w kazdym powazniejszym programie sa fragmenty nieprzenosne.
> Ale dobry programista zazwyczaj je odpowiednio obudowuje.
Z tym się zgadzam. Z reguły im więcej przenośności tym lepiej.
--
QRCZAK
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrczak.home.ml.org/
Technical Details
Message-ID:
<Pine.LNX.3.96.980124183019.4923A-100000@qrnik.knm.org.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!qrnik.knm.org.pl!qrnik.knm.org.pl!qrczakReferences:
<34C4F3AB.C34902CC@willow.iie.pz.zgora.pl> <34C5BEC9.2018@imm.org.pl> <34c73f51.1429095@news.icm.edu.pl> <34C70746.46AB@imm.org.pl> <34C7636B.33829801@fuw.edu.pl> <34C77265.11BB@imm.org.pl> <01bd27f3$0b82ce60$2701070a@jark.insert.igo.wroc.pl> <34C89233.435C@imm.org.pl> <01bd2817$afde9240$2701070a@jark.insert.igo.wroc.pl> <34C8C608.7701@imm.org.pl> <34cae9cf.10806741@news.icm.edu.pl> <34C9F9FA.1D66@imm.org.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!qrnik.knm.org.pl!qrnik.knm.org.pl!qrczak From: Qrczak <qrczak@knm.org.pl> Newsgroups: pl.comp.lang.c Subject: Re: Rezerwacja pamieci Date: Sat, 24 Jan 1998 18:38:59 +0100 Organization: Klub Nieszkodliwych Manjaków Lines: 52 Message-ID: <Pine.LNX.3.96.980124183019.4923A-100000@qrnik.knm.org.pl> References: <34C4F3AB.C34902CC@willow.iie.pz.zgora.pl> <34C5BEC9.2018@imm.org.pl> <34c73f51.1429095@news.icm.edu.pl> <34C70746.46AB@imm.org.pl> <34C7636B.33829801@fuw.edu.pl> <34C77265.11BB@imm.org.pl> <01bd27f3$0b82ce60$2701070a@jark.insert.igo.wroc.pl> <34C89233.435C@imm.org.pl> <01bd2817$afde9240$2701070a@jark.insert.igo.wroc.pl> <34C8C608.7701@imm.org.pl> <34cae9cf.10806741@news.icm.edu.pl> <34C9F9FA.1D66@imm.org.pl> NNTP-Posting-Host: ppp3-cst147.warszawa.tpnet.pl Mime-Version: 1.0 In-Reply-To: <34C9F9FA.1D66@imm.org.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit