4087490689

4087490689



zwykle stawiany przez programistów języka C, którzy po udowodnieniu, jaki to język C jest wspaniały, wracają do pisania dokładnie w takim samym stopniu nie-przenośnych programów...

Nie ukrywajmy: bez zmian kodu to tylko programy niewiele przewyższające Witaj, świecie skompilują się i uruchomią pod różnymi systemami.

2. A nowoczesne kompilatory i tak produkują najlepszy kod...

Nieprawda, i to z kilku powodów:

♦    Kompilator używa zmiennych. No i co z tego, pytacie? A to, że pamięć RAM (o dyskach itp. nie wspominając) jest wiele, wiele razy wolniejsza niż pamięć procesora (czyli rejestry). Nawet pamięć podręczna (cache) jest sporo wolniejsza.

♦    Kompilator nie wie, co się znajduje np. w danym rejestrze procesora, więc pewnie wpisze tam tą samą wartość. Co innego z programistą asma.

♦    Kompilator nie jest w stanie przewidzieć, co będzie w danej chwili w innych rejestrach. Więc do rejestru, który chce zmienić i tak wpisze jakąś wartość zamiast użyć innego rejestru, co prawie zawsze jest szybsze a więc lepsze. Co innego zrobiłby programista asma.

♦    Kompilator może używać dłuższych lub wolniejszych instrukcji.

♦    Kompilator nie zawsze może poprzestawiać instrukcje, aby uzyskać lepszy kod. Programista asma widzi, co się w jego kodzie dzieje i może wybrać inne, lepsze rozwiązanie (np. zmniejszyć rozmiary pętli czy pozbyć się zależności między instrukcjami)

♦    Kompilator może nie być świadomy technologii zawartych w procesorze. Programista asma wie, jaki ma procesor i za darmo ściąga do niego pełną dokumentację.

3.    Brak bibliotek standardowych.

I znowu nieprawda. Istnieje co najmniej kilka takich. Zawierają procedury wejścia, wyjścia, alokacji pamięci i wiele, wiele innych. Nawet sam taką jedną bibliotekę napisałem...

4.    Kod wygląda dziwniej. Jest bardziej abstrakcyjny.

Dziwniej - tak, ale nie oszukujmy się. To właśnie języki wysokiego poziomu są abstrakcyjne! Asembler przecież operuje na tym, co fizycznie istnieje w procesorze - na jego własnych rejestrach przy użyciu jego własnych instrukcji.

5.    Mniejsza czytelność kodu.

Kod w języku C można tak napisać, że nie zrozumie go nawet sam autor. Kod w asmie można tak napisać, że każdy go zrozumie. Wystarczy kilka słów wstępu i komentarze. W HLLach trzeba byłoby wszystkie struktury objaśniać.

A wygląd i czytelność kodu zależą tylko od tego, czy dany programista jest dobry, czy nie.

Dobry programista asemblera nie będzie miał większych kłopotów z odczytaniem kodu w asmie niż dobry programista C kodu napisanego w C.

6.    Brak łatwych do zrozumienia instrukcji sterujących (if, while,...)

Przecież w procesorze nie ma nic takiego!

Programista asma ma 2 wyjścia: albo używać prawdziwych instrukcji albo napisać własne makra,



Wyszukiwarka

Podobne podstrony:
42 Programuję w językach C/C++ i C++ Builder 3. Po umieszczeniu na formularzu przycisku Button należ
DSC07097 Przykładowy widok fragmentu programu w językach: LD, ST, IL oraz FDB Język LD jest najodpow
mogą być zrealizowane przez UE. Żadne działanie nie wykracza poza to, co jest konieczne do zrealizow
kupisiewicz dydaktyka ogólna2 286 Dydaktyka ogólna wanego. Ci zaś, którzy nie mogą sprostać wymagan
IMG 1401152325 UTWORZONY PRZEZ PROGRAM EDUKACYJNY FIRMY AUTODESK POPRAWAModel elementarny PO *Model
IMG 1401152325 UTWORZONY PRZEZ PROGRAM EDUKACYJNY FIRMY AUTODESK POPRAWAModel elementarny PO *Model
CCF20091108007 , Mulder, 1987). Aby w pełni po iązki między symptomami a wyma i stawianymi prz
z uznaniem uwydatnił fakt popierania Bibljoteki przez PP. Nakładców, którzy stale nadsyłają po jedny
Programowanie: Programowanie to zapisywanie algorytmów w postaci programów w językach zrozumiałych p
89768 WP 1403102 Po co nam energia elektyczna ? W raporcie opublikowanym 19 stycznia 2012 przez Pro

więcej podobnych podstron