Co to jest - kompilator i jak to działa

21.02.2019

Nowoczesne technologie komputerowe są na stałym etapie poprawy. Każdego dnia pojawia się coraz więcej nowych technologii, pozwalających realizować to, co niedawno zdefiniowano jako fikcję. Języki, zarówno ludzkie, jak i komputerowe, również podlegają silnym zmianom. W tym artykule powiemy ci szczegółowo, co to jest - kompilator, jak z nim pracować, do czego został stworzony i gdzie można go znaleźć teraz. Artykuł jest zalecany nie tylko dla początkujących użytkowników systemu operacyjnego Windows, ale także dla programistów, którzy chcą poznać ukrytą wiedzę o swoim systemie.

Język dla systemu operacyjnego

Zacznijmy od tego, że warto je abstrahować, ponieważ programowanie to nie tylko wbijanie pewnych słów kluczowych do maszyny, to także przemyślane działania związane z komponentami systemu. Początkowo był kod binarny, a następnie programiści stworzyli pół-komputerowy język programowania - asembler, ale po co?

Wyobraź sobie, że musisz liczyć każdy bit na kalkulatorze programisty, a następnie poprawnie go połączyć i wiele więcej. W asembler wszystko stało się trochę prostsze, ale wciąż bardzo, bardzo trudne w porównaniu do współczesnych języków programowania, na przykład C ++, który jest nazywany jednym z najbardziej złożonych, ale zostanie omówione nieco później.

zainstalowany kompilator

W języku asemblerowym wszystko odbywa się dzięki rejestrom procesora: dzieleniu, mnożeniu, przenoszeniu wartości z punktu A do punktu B itd. Głównym problemem jest to, że nadal jest on w połowie maszynowy, ale wciąż jest czytelny dla człowieka, w przeciwieństwie do chaotycznie rozproszonych bitów. . Kolejną wadą była ograniczona liczba tych rejestrów.

W latach osiemdziesiątych postanowili wymyślić język programowania, dzięki któremu łatwo byłoby napisać system operacyjny. Tak powstało C i kompilator GCC z GNU. Jeśli korzystasz z Linuksa, powinieneś zobaczyć produkty tej firmy. Nawiasem mówiąc, asembler jest nadal używany, ponieważ niektóre kompilatory tworzą pliki obiektowe z kodem binarnym, podczas gdy inne są wykonywalne - z kodem w asemblerze. Wszystko zależy od platformy programistycznej.

Nowoczesny kompilator ma w sobie następujące programy:

  1. Debugger to program, który wysyła komunikaty o błędach z linkera, preprocesora, interpretera.
  2. Preprocesor to program, którego głównym zadaniem jest wyszukiwanie specjalnych etykiet rozpoczynających się od znaku # i wykonywanie określonego rodzaju poleceń. Na przykład dodanie biblioteki innej firmy do kompilacji projektu.
  3. Interpreter to program, który tłumaczy nasz mniej lub bardziej zrozumiały język programowania na kod binarny lub asembler.
  4. Linker to program, dzięki któremu brakujące pliki są automatycznie łączone.

Istnieją również 2 typy kompilacji projektu przez kompilator: dynamiczne i statyczne. W pierwszym tylko niezbędne pliki projektu są dodawane, mimo środowiska programistycznego, aw drugim przypadku wszystko w kupie (oczywiście połączone). Tak więc z tego możemy już powiedzieć, że kompilator to cała lista programów do zbierania i przetwarzania informacji w czytelnej i logicznej formie dla komputera. Następnie przyglądamy się, jak to wszystko się zaczęło.

Pierwsze proste kompilatory

Możesz być zaskoczony, ale po raz pierwszy przedmiot naszego artykułu (wtedy też był nazywany tłumaczem) pojawił się w 1954 roku w Instytucie, specjalizując się w matematyce stosowanej. Nie obejmował on tak dużego zestawu programów, jak jest teraz, ale był to przełom w nauce w tamtym czasie. Nie było żadnego obciążającego, więc ludzie musieli robić wszystko dosłownie z rękami i używać standardowej i dyskretnej matematyki, aby dowiedzieć się, czy komputer elektroniczny uzyskał właściwy wynik.

prosty program na c ++

Czy można budować bez nowego języka?

Jeśli jesteś dość inteligentnym programistą, będziesz w stanie wykonać to zadanie. To prawda, że ​​zajmie to dużo czasu i wysiłku. Nawiasem mówiąc, zanim istniał nawet taki zawód - programista-linker. Tylko w nowych językach programowania wszystko jest zautomatyzowane, a wcześniej ludzie musieli łączyć fragmenty kodu Make z plikami. Nawiasem mówiąc, niektóre projekty na Linuksie można teraz zbierać za pomocą tych samych plików Makefile, wystarczy określić ich zależności ręcznie.

środowisko programistyczne

Po zebraniu kodu linker oddał pracę komputerowi do przetworzenia, gdzie ostatecznie otrzymał gotowy kod binarny.

Jak widać, kompilator to nie tylko program, ale także wysiłki wielu osób. A oni, jak argumentował Henry Ford, próbują zautomatyzować każdy proces.

Najlepszy kompilator Windows

Tak więc wielu czytelników wie, że istnieje wiele martwych języków, ale jeszcze więcej żywych, to jest tych, które aktualizują swoją standardową bibliotekę przynajmniej raz w roku. Jak już powiedzieliśmy, powstał C 1980. To był przełom. Wielu naszych ojców nadal uwielbia ten język, ale co teraz?

Żyje i rozwija się w nowym ciele, jeśli mogę tak powiedzieć. Jego spadkobiercą jest prawo C ++, chociaż jego twórcy nie wolno pisać kodu podobnego do C, wielu programistów ignoruje to i robi, ale dlaczego takie rażące naruszenie zasad jest dozwolone?

zaktualizowane środowisko programistyczne
  • Po pierwsze, zajęło znaczną część standardowych bibliotek od C, a nowe kompilatory G ++ są w stanie skompilować kod C, który sam w sobie wskazuje na ich podobieństwo.
  • Po drugie, C ++ zostało stworzone, by zastąpić C, i teraz widzimy jego wyniki. Nawiasem mówiąc, program kompilujący G ++ nie "przeklina", dopóki nie zostanie użyta co najmniej jedna klasa - to główna różnica między tymi dwoma językami. Możesz nazwać G ++ najlepszym kompilatorem, nie jest to bez znaczenia, że ​​dzięki niemu piszą aplikacje mobilne, system operacyjny Windows itp.

Porada dla początkujących programistów

Twoja ścieżka będzie ciernista - warto wiedzieć przede wszystkim. Aby zacząć pracę z językiem, na przykład, jeśli jest to C, zdecydowanie powinieneś zapoznać się z kompilatorem C. A jeśli nie zaprzyjaźnisz się z nim i nie zrozumiesz jego logiki, twoje projekty będą opóźniać się i latać jeden po drugim.

linie kodu

Staraj się czytać jak najwięcej książek nie tylko o podstawach programowania, ale także o historii tworzenia języków, więc na pewno zrozumiesz samą istotę tego procesu. Staraj się łączyć praktykę z nową wiedzą, aby wszystko zostało zapamiętane o wiele szybciej. Ponadto staraj się doprowadzić swój angielski do co najmniej średniego poziomu, w przeciwnym razie bardzo trudno będzie ci poruszać się po IDE.

Podsumowując

Mam nadzieję, że po przeczytaniu tego artykułu zrozumiesz, że to jest kompilator, jak to działa, dlaczego został stworzony i kogo wciąż potrzebujesz. Warto przypomnieć, że najważniejszą rzeczą dla programisty jest zrozumienie sytuacji, zrozumienie podstawowych zasad, więc naprawdę mamy nadzieję, że artykuł pomógł ci w tym.