-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin1!goblin2!goblin.stu.neva.ru!newsfeed1.swip.net!peer01.iad.highw
inds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.
newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada
.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "J.F" <j...@p...onet.pl>
Newsgroups: pl.misc.elektronika
References: <b...@g...com>
<3...@g...com>
In-Reply-To: <3...@g...com>
Subject: Re: Programowanie uC - Pascal, czy C ?
Date: Mon, 27 Jan 2014 23:45:17 +0100
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 15.4.3555.308
X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308
Lines: 124
Message-ID: <52e6e17e$0$2140$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 109-207-52-74.ronus.pl
X-Trace: 1390862718 unt-rea-a-02.news.neostrada.pl 2140 109.207.52.74:49283
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 5949
X-Received-Body-CRC: 3296053145
Xref: news-archive.icm.edu.pl pl.misc.elektronika:658865
[ ukryj nagłówki ]Użytkownik napisał w wiadomości grup
dyskusyjnych:3a3cc0cf-7519-4efc-b7a1-c307d18b9f33@go
oglegroups.com...
>Wycięłem twoje przykłady bo bardziej wskazują na Twoją niewiedzię niż
>na
>braki C. Narzekasz na najmiej istotne róznice, gdzie spora część
Tu racje ma A.L. - najpierw nauczyc sie w miare dobrze C, potem
narzekac :-)
Trzeba przyznac ze skladnia C jest "bledogenna" - nawet doswiadczony
programista moze sie latwo pomylic.
Wystarczy ze napisze a=b zamiast a==b i nieszczescie gotowe.
Ale lint lub ostrzezenia kompilatora pozwalaja sporo z nich wykryc.
>Pytasz się dlaczego wymyślono C. Proste, był potrzebny język
>z nastepującymi własnościami:
>- ma się dać kompilować głupim kompiltorem (pierwsza maszyna na
>której
> chodziło C mała w porównaniu z innymi uwczesnymi maszynami)
No, C i Pascal to mniej wiecej te same lata, a tych kombinacji w C
tyle, ze kompilator Pascala chyba znacznie prostszy.
>- ma pozwalać na zwięzły i czytelny zapis programu
Juz chyba nie bylo co oszczedzac pojedynczych znakow, a i tak
najwiecej sie na wciecia tracilo :-)
Brak instrukcji "with" w C troche utrudnia zwiezlosc.
>- ma pozwalać na otrzymanie w miarę wydajnego kodu wynikowego
Tego i Pascal nie wyklucza, no moze z wyjatkiem sprawdzania zakresow
tablic.
>- ma dawać kontrolę nad maszyną
Pare rozszerzen made in Borland i oba dawaly taka sama.
>Z tego punktu widzenia najważniejsze w C są:
>- operator rzutowania (cast), bo pozwala na różne niskopoziomowe
>sztuczki
Wirth by sie obrazil, ale to mozna i do Pascala wprowadzic.
Poza tym nie calkiem jest w C okreslone kiedy rzutujesz, a kiedy jest
konwersja.
>- arytmetyka adresowa i konwersja tablic do wskaźników bo pozwala
> jawnie zapisać manipulacje potrzebne przy dostępie do tablic
> i w ten sposób uniknąć wstawiania przez kompilator potencjalnie
> powolnego niejawnego kodu
No, na tej arytmetyce mozna lekko osiwiec :-)
>- orientacja na wyrażenia: np. podstawienia w C są wyrażeniami i
> mogą być użyte jako części innych wyrażeń co pozwala na zwięzły
> zapis
Akurat tego bym nie gloryfikowal, malo uzyteczne.
>- '++', '--' i ogólniej operatory modyfikacji jak np. '+=', są
>zwięzłe
> i łatwo dla nich generować wydajny kod
No, roznie z tym bywalo. Kolega kiedys w Pascalu z uwielbieniem pisal
np a+a, az kiedys spojrzal w kod i sie okazalo ze 2*a jest szybsze.
Fakt ze czesto ulatwia zapis.
>Dziś kompilatory optymalizujące dla C są łatwo dostępne, więc można
>nie doceniać możliwici użycia prostego kompilatora. Ale w pierwszych
>latach C kompilatory dla mini i mikrokomuterów były badziewiate.
>Jak komplator optymalizujący (wtedy niedostępny) dałby kod o
>czasie wykonania 1 to badziewiaty kompilator C dawał czas
>wykonania np. 1.5 a badziewiaty kompilator Frotranu np. 4 i
>szła fama że "C jest szybkie".
No nie, Fortran jak pisalem potrafil dac dobry kod.
Tylko ze on sie nadawal do obliczen, takiej "kontroli nad sprzetem"
jak C absolutnie nie mial.
>W efekcie C zdobyło sobie
>popularność. Dziś większą rolę odgrywa rozpęd: C jest popularne
>więc autorzy kompilatorów (i innych narzędzi) się starają.
>Ludzie używają C bo są dobre narzędzia.
> Inną wadą w podobnym duchu
>jest trudność sprawdzania czy indeksy tablic mieszczą się
>w zadanym zakresie. Kompilator Pascala wie kiedy ma do czynienia
>z tablią i zwykle (z wyjątkiem niekiedy dodawanyc konstrukcji
>w stylu C) zna rozmiar tablicy więc może automatycznie wstawić
>instrukcje sprawdzające czy indeks mieści się w granicach.
Ale to akurat umiarkowana zaleta. To ze program sam sprawdzi indeks i
sie wysypie z bledem jest w gotowym programie niedopuszczalne. Program
nie ma sie wysypywac.
A jak programista doda wlasne sprawdzenie ... to mu to od kompilatora
zupelnie niepotrzebne.
>Kompilator C widzi wskaźnik i nie jest jasne jakie są granice
>obszaru zawierającego wskazywany element.
No, obsluga tablic wielowymiarowych jest w C cokolwiek komiczna :-)
>Pascal w zasadzie potrafi to samo co C, choć program może być
>nieco dłuższy jeśli skróty w C trzeba wyekspandować (program
>w Pascalu może też być krótszy). Ale w C jest de facto standard
>pozwalający zrobić sporo niskopoziomowych rzeczy. Np:
> /* Diable watchdog timer */
> WDTCTL = WDTPW | WDTHOLD;
Akurat tu .. Pascala latwo rozszerzyc o operacje bitowe, zas C nie
gwarantuje jednolitej kompilacji powyzszego.
W obliczu roznych mozliwosci procesora i sprzetowych rejestrow nie
wiadomo jak C to skompiluje.
>W sumie: jak masz dobry kompilator Pascala to może on
>mieć zalety w porównaniu z C. Ale jest spora szansa
>że C wygra ze względu na większą dostępność narzędzi
>i bibliotek.
Biblioteki C w zasadzie mozna by i w Pascalu wykorzystac.
J.
Następne wpisy z tego wątku
- 27.01.14 23:51 J.F
- 28.01.14 00:04 J.F
- 28.01.14 00:16 A.L.
- 28.01.14 00:20 RoMan Mandziejewicz
- 28.01.14 00:51 J.F
- 28.01.14 00:56 J.F
- 28.01.14 01:05 RoMan Mandziejewicz
- 28.01.14 01:36 A.L.
- 28.01.14 01:38 A.L.
- 28.01.14 01:45 A.L.
- 28.01.14 08:42 Zbych
- 28.01.14 08:54 Zbych
- 28.01.14 10:22 Piotr Gałka
- 28.01.14 10:38 Piotr Gałka
- 28.01.14 10:40 JDX
Najnowsze wątki z tej grupy
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=