eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProgramowanie uC - Pascal, czy C ?Re: Programowanie uC - Pascal, czy C ?
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: