Article View: pl.comp.objects
Article #4694Re: Prawda o C++
From: Sektor van Skijlen
Date: Mon, 25 Jan 1999 15:46
Date: Mon, 25 Jan 1999 15:46
93 lines
5388 bytes
5388 bytes
W ostatnim odcinku, Andrzej Lewandowski naskrobal: : Jezeli poslugujemy sie jezykiem C to: Co ja ujme w ten sposob... : 1. Zawartosc dowolnego kawalka pamieci moze byc w C interpretowana na : rozne sposoby, 1. zawartosc dowolnego kawalka pamieci moze byc interpretowana na kilka sposobow, w zaleznosci od zamierzen programisty (zdanie dla mnie zbyt oczywiste, brzmi to jak "kazdy kawalek metalu moze sluzyc do roznych celow, w zaleznosci od tego, jak zostal uksztaltowany" :*). : 2. Operacje dopuszczalne na zawartosci tego kawalka okreslone sa przez : zbior instrukcji procesora, a nie znaczenie informacji przechowywanej : na tym kawalku. 2. Operacje dopuszczalne na zawartosci tego kawalka okreslone sa przez programiste, ktory zna rodzaj przechowywanych na nim informacji i zamieniane przez kompilator na zbior instrukcji procesora, majace za zadanie wykonac owa operacje w jak najlepszy sposob, odpowiadajacy temu, co zadal programista. : 3. "typy" w jezyku C nie sa typami jak sie je rozumie w jezykach : wysokiego poziomu. Sluza tylko i wylacznie do rezerwacji kawalka : pamieci. 3. "typy" w jezyku C (jak i w C++) sa typami, jak sie je rozumie w jezykach wysokiego poziomu; pomiedzy nimi mozna dokonywac konwersji, wiele z nich kompilator wykonuje domyslnie, choc programista zawsze wie, gdzie jaka konwersja zostanie dokonana. Mala dygresja - przeciez mozna sobie stworzyc w C++ typ znakowy, ktoremu sie nalozy swoje restrykcje i juz nie bedzie tak pieknie. : 4. Jako taki, C nie jest ani silnie typowany, ani wysokiego poziomu. : Jest to asembler wyposazony w instrukcje do programowania : strukturalnego. 4. Jezyk C jest rodzajem przenosnego asemblera, ukierunkowanym na programowanie strukturalne i proceduralne; C++ jest dodatkowo ukierunkowany na programowanie obiektowe. Oba sa jezykami wysokiego poziomu, gdyz wprowadzaja abstrakcyjne elementy, obce asemblerowi (C++ bardziej oczywiscie :*) - jak chocby samo istnienie typow i struktur - zas nieobce czlowiekowi. : Zadziwiajace jest ze K&R udalo sie gawiedzi wmowic ze to jest : "ulepszony Pascal". Mnie to akurat nie dziwi. Mimo, ze w C brakuje roznych rzeczy dostepnych w Pascalu (w zasadzie przyznalbym ta wlasciwosc tylko zbiorom - pokazywalem swego czasu, jak to rozwiazac w C++). : Zadziwiajace jest rowniez to, ze spora czesc ludzkosci dala sie : namowic do programowania w asemblerze rzeczy ktore prosciej i szybciej : daloby sie zaprogramowac w dowolnym jezyku wysokiego poziomu. Na przyklad (jezyk i o ile szybciej) ? Jesli chce Pan pokazac przyklad, gdzie w Pascalu uzyje Pan zbiorow i jak to sie z tym trzeba meczyc w C - prosze sobie oszczedzic. Juz dyskutowalismy ntt. : Szkoda jest rowniez ze od dlugiego juz czasu na uczelniech zaprzestano : nauczania jezykow wysokiego poziomu, koncentrujac sie na strukturalnym : asemblerze zwanym C czy "obiektawym" asemblerze zwanym C++. Gdyby takich : jezykow nauczano, mniej byloby przypadkow mylenia badz tez nieznajomosci : podstawowych pojec z dziedziny informatyki... Widze, ze dawno Pan nie studiowal :*)) Przypadki mylenia badz nieznajomosci podstawowych pojec z dziedziny informatyki zawdziecza sie nie rodzajowi nauczanego jezyka, a jakosci wiedzy ntt., jaki reprezentuje soba wykladowca. I nie ma nic do rzeczy, jaki jezyk programowania sie wyklada; choc musze przyznac, ze MOZE lepiej by bylo do nauczania programowania obiektowego wybrac inny jezyk, wlasnie jakis taki z restrykcjami (jak Pascal), zeby nie wprowadzac niepotrzebnie elementow niskopoziomowych, acz nie bylbym co do tego tak do konca przekonany; niemniej nie wiem, jaki jezyk by tu pasowal - TurboPascal nie posiada standardu i jego restrykcyjnosc przytlacza samo programowanie obiektowe; Smalltalk, Java, czy OC maja swoje oddzielne ideologie, ktore beda potem przeszkadzac w uczeniu sie C++ (mielismy juz przyklad pisania Smalltalkiem w C++). Totez szczerze mowiac nie widze jezyka, ktory by do tego celu pasowal. Aczkolwiek ja uczylem sie C++ od poczatku (powiedzmy, ze po Pascalu, ktory denerwowal mnie od poczatku, jak go tylko poznalem - byl jeszcze bardziej restrykcyjny, niz Atari Basic :*)) i nie mialem przypadkow mylenia pojec z dziedziny informatyki. Zas co do tych pojec, czyli teorii programowania - przypominam (nie po raz pierwszy), ze zbytnie zaglebienie sie w teorie w rzeczywistosci oddala, miast przyblizac zrozumienie i nauczenie sie wielu praktycznych rzeczy tak z dziedziny informatyki, jak i z kazdej innej. Pozdrawiam. -- [- Ben a dar van dijn vijt -] Michal 'Sektor' Malecki <sektor@spam.org> - zartowalem, @beer.com :*) Politechnika Lodzka, Elektrotechnika/Informatyka st.
Technical Details
Message-ID:
<78i3k1$f$5@polonez.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.man.poznan.pl!news.man.lodz.pl!not-for-mailReferences:
<36A84E58.CC21CC89@meil.pw.edu.pl> <36a90e81@news3.ibm.net> <78ff18$k41$2@polonez.man.lodz.pl> <36ab5129@news3.ibm.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.man.poznan.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <sektor@spam.org>
Newsgroups: pl.comp.objects
Subject: Re: Prawda o C++
Date: 25 Jan 1999 15:46:09 GMT
Lines: 93
Message-ID: <78i3k1$f$5@polonez.man.lodz.pl>
References: <36A84E58.CC21CC89@meil.pw.edu.pl> <36a90e81@news3.ibm.net> <78ff18$k41$2@polonez.man.lodz.pl> <36ab5129@news3.ibm.net>
NNTP-Posting-Host: zly.kis.p.lodz.pl
User-Agent: tin/pre-1.4-981225 ("Volcane") (UNIX) (SunOS/5.5.1 (i86pc))
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit