W tym artykule omówimy różne rodzaje dostępnych procesorów języka. Przyjrzymy się kompilatorowi, interpreterowi, translatorowi i asemblerowi. W tym artykule omówimy również różnice pomiędzy tymi czterema różnymi narzędziami do programowania komputerów. Ponadto, krótko omówimy różnice między interpreterem a kompilatorem. Ponadto, krótko wyjaśnimy, dlaczego jeden jest lepszy od drugiego. Ale zanim się zanurzymy, zrozummy, co te cztery programy właściwie robią.
Kompilator
Kompilatory to programy komputerowe, które konwertują kod źródłowy języka wysokiego poziomu na kod czytelny dla maszyny. Programy te stają się przenośne poprzez konwersję języka wysokiego poziomu na kod maszynowy. Kompilatory tłumaczą kod źródłowy na kod maszynowy, który zajmuje dużą część pamięci komputera. Kompilatory mogą być używane na różnych architekturach komputerowych i systemach operacyjnych. Proces konwersji kodu źródłowego na kod maszynowy jest złożony i obejmuje kilka etapów.
Pierwszym krokiem w programowaniu komputera jest konwersja języka wysokiego poziomu na kod nadający się do odczytu maszynowego. Język wysokiego poziomu jest podobny do języków ludzkich i posiada reguły gramatyczne, które ułatwiają zrozumienie instrukcji. Kompilator musi przetłumaczyć ten język wysokiego poziomu na kod czytelny dla maszyny, aby program mógł być przetłumaczony na inny komputer. Gdy program zostanie przetłumaczony, kompilator stworzy plik obiektowy. Ostatecznie, kompilator będzie miał zasadnicze znaczenie dla sukcesu programu komputerowego.
Kompilator jest niezbędnym elementem każdego projektu programistycznego. Kompilator tłumaczy język programowania wysokiego poziomu na kod czytelny dla maszyny, który jest bardziej zrozumiały dla komputera. Kompilator musi przestrzegać zasad języka, na który tłumaczy, w przeciwnym razie program będzie bezużyteczny. Kompilator musi również przestrzegać zasad składni, aby kod źródłowy został prawidłowo wykonany. Jeśli programista popełni błąd w kodzie, kompilator nie może go naprawić, a programista musi dokonać niezbędnych zmian w swojej składni, aby program mógł zostać uruchomiony.
Kompilator i interpreter to dwa różne sposoby tworzenia programu. Kompilator tłumaczy wysokopoziomowe instrukcje programu na język maszynowy, a interpreter wykonuje jedną linię kodu na raz. Informuje o błędach i tworzy kod binarny specyficzny dla maszyny. Kompilator jest wolniejszy od interpretera, ale może uruchamiać ten sam program szybciej i jest przenośny. Interpreter jest również mniej zależny od procesora, co oznacza, że może pracować na różnych architekturach sprzętowych.
Wczesne systemy komputerowe były pisane w języku asemblerowym. Wtedy pomysł wykorzystania języków wysokiego poziomu w programowaniu systemów był kontrowersyjny. Jednak w miarę upływu czasu różne wysiłki przemysłu i badań zaczęły się kierować w stronę języków wyższego poziomu. W 1966 roku Martin Richards z Uniwersytetu w Cambridge opracował język wysokiego poziomu o nazwie BCPL. Kompilator BCPL był podstawą dla języków C i B.
Interpreter
Kompilatory tłumaczą język programowania wysokiego poziomu na kod maszynowy. Programy te tłumaczą kod czytelny dla człowieka na kod maszynowy, który procesory komputerowe rozumieją i przetwarzają. Kompilatory są zwykle zależne od platformy i procesora, przy czym istnieją różne rodzaje kompilatorów. Pierwszą rzeczą, jaką należy zrobić, szukając kompilatora, jest określenie systemu operacyjnego komputera i architektury zestawu instrukcji (ISA).
Istnieją dwa rodzaje kompilatorów: asembler i kompilator. Kompilatory są szybsze i tworzą kod na poziomie maszynowym, natomiast interpretery są wolniejsze i ich kompilacja może trwać dłużej. Kompilatory są zwykle preferowane w przypadku gier przeznaczonych na konsole domowe, ponieważ szybciej generują kod maszynowy. Jednak od narzędzi edukacyjnych często nie wymaga się szybkich kompilatorów. W przypadku narzędzi edukacyjnych wystarczający może być interpreter.
Kompilatory są bardziej bezpieczne niż interpretery, ponieważ generują kod maszynowy, zamiast pośredniego kodu obiektowego. Interpretowane programy są łatwiejsze do debugowania i współdzielenia na różnych platformach, a także zużywają mniej pamięci. Chociaż interpreter może być wolniejszy niż kompilator, jest łatwiejszy do odczytania i zrozumienia przez ludzi. I w przeciwieństwie do kompilatora, interpreter może być używany na każdym systemie. Oznacza to, że będzie działał na każdym komputerze i na każdej platformie.
Języki wysokiego poziomu są podobne do języków ludzkich, ale mają bardziej złożone reguły i słownictwo. Są zaprojektowane tak, aby instrukcje były bardziej przyjazne dla użytkownika i niezależne od maszyn. Programy te mogą być również zapisywane w języku angielskim jak słowa. Kompilatory są niezbędne w tym procesie konwersji. Pomagają one przekształcić język wysokiego poziomu w kod przyjazny dla maszyn. Do pisania programów można używać języka wysokiego poziomu, ale dla uzyskania najlepszych rezultatów zaleca się używanie języka niskiego poziomu.
Kompilatory generują pośredni kod obiektu, podczas gdy interpretery nie. Kompilatory kompilują kod przed wykonaniem, podczas gdy interpretery wykonują ten krok w czasie wykonywania. Kompilatory tworzą kod maszynowy przed uruchomieniem programu, natomiast interpretery generują pośredni kod obiektowy po zakończeniu kompilacji. W porównaniu z kompilatorem, interpretery są bardziej przenośne. Ponadto, interpretery nie potrzebują etapu kompilacji, więc mogą działać na różnych typach architektur sprzętowych.
Translator
Translator to program komputerowy, który przekształca język wysokiego poziomu na kod czytelny dla maszyn. Odbywa się to bez utraty funkcjonalności kodu. Translator czyta program w języku wysokiego poziomu i tłumaczy każde stwierdzenie na instrukcje czytelne dla maszyny. Następnie stworzy skompilowaną wersję programu, która często jest szybsza niż kod źródłowy. Podczas tłumaczenia programu mogą wystąpić błędy, a raporty o błędach będą generowane, jeśli program je posiada.
Tłumacz różni się od kompilatora, który tłumaczy kod maszynowy na kod czytelny dla maszyny. Zadaniem tłumacza jest interpretacja kodu źródłowego języka wysokiego poziomu, czyli języka wyższego poziomu, który może zrozumieć komputer. Tłumaczy on instrukcję kodu źródłowego linia po linii na kod maszynowy. Gdy proces ten zostanie zakończony, przetłumaczone instrukcje zostaną wykonane przed przetłumaczeniem kolejnej instrukcji. Komunikaty o błędach zostaną wygenerowane przed przetłumaczeniem następnej instrukcji. Przetłumaczony program jest łatwiejszy w użyciu i może działać na różnych typach procesorów.
Interpreter jest używany dla języków takich jak Python i PHP. Tłumaczy on język wysokiego poziomu na wersję czytelną dla maszyny i sprawdza jego składnię, aby upewnić się, że kod jest poprawny. Interpreter nie zapisuje jednak kodu do odczytu maszynowego, więc jest odpowiedni tylko dla początkujących programistów. Te programy komputerowe są też na ogół mniejsze, ponieważ są zbudowane w oparciu o model translacji linkowanie-ładowanie (TLL).
Niezależnie od tego, czy do napisania programu potrzebny jest translator, warto będzie wiedzieć, jakie są różnice między kompilatorem a interpreterem. Kompilator to narzędzie, które kompiluje kod źródłowy języka wysokiego poziomu do kodu czytelnego dla maszyny. Interpreter tłumaczy jedną instrukcję na raz i zatrzymuje tłumaczenie, gdy napotka błąd. Interpreter jest szybszy niż kompilator, ale jest wolniejszy.
Interpreter to program komputerowy, który tłumaczy język wysokiego poziomu na język do odczytu maszynowego. Kompilator tłumaczy program wysokiego poziomu na plik wykonywalny przed jego uruchomieniem, natomiast interpreter wykonuje to zadanie w czasie uruchamiania. Interpreter uruchamia kod źródłowy linia po linii, tłumacząc go po jednej linii na raz. Proces ten powtarza się aż do ukończenia programu. Ponieważ program nie przechodzi przez etap kompilacji, interpreter może być bardziej przenośny niż kompilator.
Asembler
Asembler to program komputerowy służący do tłumaczenia języka asemblerowego na kod maszynowy. Tworzy on kod wykonywalny dla każdej instrukcji w programie źródłowym. Wcześniej w tym rozdziale widzieliśmy przykład asemblera. Asembler jest przydatny do debugowania innych programów, uczenia się nowych technik i powielania programów. Asembler może być używany przez każdego, kto zna podstawy języka asemblera, nawet początkujący mogą go używać.
Program asemblerowy konwertuje programy w języku wysokiego poziomu na kod maszynowy. Do wykonania pojedynczej instrukcji w języku wysokiego poziomu potrzeba ośmiu linii kodu, podczas gdy program w języku asemblerowym może wykonać tylko trzy krótkie polecenia. Asembler produkuje również krótszy kod wykonywalny, ponieważ polega na narzędziu kompilatora do przetwarzania informacji. Jednak główną wadą języka asemblerowego jest wolniejszy czas wykonania.
Asemblery to programy służące do konwersji programów w języku wysokiego poziomu na kod maszynowy. Narzędzia te nazywane są kompilatorami, interpreterami i asemblerami. Zarówno kompilatory jak i asemblery tłumaczą język wysokiego poziomu na kod maszynowy. Podczas gdy język wysokiego poziomu jest zazwyczaj przenośny pomiędzy różnymi architekturami, asemblery są specyficzne dla jednej architektury.
Asembler jest pierwszym krokiem w procesie konwersji programu w języku wysokiego poziomu na kod maszynowy. Kompilatory i asemblery generują kod maszynowy w dwóch fazach. Kompilatory generują długą listę instrukcji kodu maszynowego dla każdej instrukcji wysokiego poziomu. Asemblery natomiast generują jedną instrukcję kodu maszynowego dla każdej instrukcji asemblera.
Ogólnie rzecz biorąc, proces asemblera składa się z dwóch etapów. Po pierwsze, asembler asembluje program w języku asemblera, a następnie łączy go w kod maszynowy. Po drugie, proces asemblera łączy części programu w jeden plik. Wynikiem jest kod maszynowy, który komputer może odczytać. Narzędzie linkera pozwala również na połączenie programu w języku wysokiego poziomu z programem w kodzie maszynowym.
Asembler to program komputerowy, który tłumaczy kod źródłowy na kod maszynowy. Rejestruje błędy, gdy kod nie jest zgodny z regułami danego języka. Jest potężnym narzędziem do debugowania i optymalizacji programów. W przeciwieństwie do interpretera, Asembler może pracować tylko z kodem źródłowym napisanym w tym samym języku co kod maszynowy. Asembler tworzy również dane, które mogą być wykorzystane przez program ładujący.
Podobne tematy