Kompilator...to słowo jeszcze nieraz będziecie widzieć i słyszeć drodzy przyszli (albo obecni) programiści. Chcecie znać krótkie i rzetelne wyjaśnienie? No to wchodzić :)!
Tweet |
SKĄD SIĘ WZIĄŁ KOMPILATOR?
Kiedy nas wszystkich nie było jeszcze na tym świecie, w latach .40 XX wieku ludzie mieli do dyspozycji tylko język Assembly, po angielsku "assembly language". Asembler, co by o nim nie powiedzieć, to jednak daje najlepsze rezultaty co do wydajności wykonywanego programu. Nawet używa się go teraz współcześnie do programowania systemów wbudowanych i sterowników. Domyślamy się pewnie, że z biegiem czasu rosło zapotrzebowanie na narzędzie mogące nas odciążyć od pisania w tym języku i przesiąść się na wygodniejszą składnię.
Przełomem była inicjatywa Pani Grace Hopper w 1951 roku kiedy opracowała pierwszy w historii kompilator (ang. "compiler"), program dokonujący tłumaczenia kodu źródłowego na język maszynowy (ang. "machine code"), który dla nas jest nieczytelny, za to komputer doskonale go rozumie. Po paru latach otworzył on wrota do pisania programów w takich językach jak FORTRAN (1957) czy COBOL (1959). Kiedy programista ukończył prace nad kodem źródłowym, to uruchamiał program kompilujący i komputer zwracał wynik (przypominam, że to były czasy kiedy rezultat programu był pisany na karcie perforowanej ;)).
Zatem:
kompilacja = proces tłumaczenia kodu źródłowego języka programowania zrozumiałego dla człowieka, na język maszynowy zrozumiały dla komputera
kompilator = program dokonujący kompilacji
"Got it" ;)? No myślę, że tak! Program też charakteryzuje się sprawdzaniem błędów w kodzie źródłowym ZANIM sobie "zawróci głowę" jego translacją (w odróżnieniu od interpretera). Współcześnie to wygląda inaczej, wiadomo. Teraz wciskamy przycisk "Kompiluj" i wszystko dzieje się w mgnieniu oka na ekranie, a zamiast karty dziurkowanej mamy pliki wynikowe w różnych formach, w zależności od języka wysokiego poziomu. To może być plik wykonywalny, pliki bajtowe (Java), a nawet kod w języku asemblera jeśli kompilator wspiera taką sposobność (jak np. GCC)!
Język kompilowany to język programowania, którego kod źródłowy jest poddawany kompilacji. Dzisiejsze języki kompilowane to między innymi:
Warto wiedzieć, że to nie jest jedyny sposób na uruchamianie programu. Interpreter to druga sposobność, którą nakreślę Wam szerzej już w odrębnym artykule. On działa na skryptach, podczas gdy kompilator na tzw. plikach źródłowych. Przynajmniej ja spotkałem się z takim rozróżnianiem.
Więcej nie musicie wiedzieć :)! Dzięki za przeczytanie od dechy do dechy, bo to Wam ma służyć, a nie mnie.