-
Data: 2014-01-27 23:45:17
Temat: Re: Programowanie uC - Pascal, czy C ?
Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Położyłem dwa telefony obok siebie
- Przekaźnik na szynę DIN (?)
- Taśma LED
- Jak odróżnić myjki wibrujące od ultradźwiękowych.
- Ledy na wyłączniku czasowym błyskają
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- RCD wybija
- Re: Kompensacja mocy biernej przy 230VAC
- Łożysko ślizgowe - jaki olej
- Re: Kompensacja mocy biernej przy 230VAC
- Re: Kompensacja mocy biernej przy 230VAC
- Współczesny falomierz
- Zasilacz 7V na szynę DIN
- Waga z legalizacją
Najnowsze wątki
- 2025-04-09 Warszawa => Senior Product Manager <=
- 2025-04-09 Warszawa => Starszy Konsultant SAP FICO <=
- 2025-04-09 Warszawa => NMS System Administrator <=
- 2025-04-07 C++. Podróż Po Języku - komentarz
- 2025-04-08 Warszawa => Presales - Inżynier Wsparcia Technicznego IT <=
- 2025-04-08 Pomnik Polaków w Berlinie - OK! - ale co z ustawą o mniejszości polskiej?
- 2025-04-08 Uniwersytet Jagielloński zawiesza protestujących studentów
- 2025-04-07 Nagie zdjęcia nauczycieli
- 2025-04-07 czy też tak macie w swoich Wrocławiach?
- 2025-04-07 Czeladź => Specjalista ds. public relations <=
- 2025-04-07 Adam Bodnar przekracza kolejną granicę absurdu. Powoli się szykuje do nowej fuchy w TSUE
- 2025-04-07 Warszawa => Sales Executive / KAM <=
- 2025-04-07 Warszawa => Operations Support Systems (OSS) Team Leader <=
- 2025-04-07 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-04-07 Warszawa => Software Solution Architect <=