czym jest kompilator?
kompilator to program komputerowy, który przekształca kod napisany w wysokopoziomowym języku programowania w kod maszynowy. Jest to program, który tłumaczy kod czytelny dla człowieka na język, który rozumie procesor komputerowy (bity binarne 1 i 0). Komputer przetwarza kod maszynowy w celu wykonania odpowiednich zadań.
kompilator powinien być zgodny z regułą składni tego języka programowania, w którym jest napisany. Jednak kompilator jest tylko programem i nie może naprawić błędów znalezionych w tym programie. Tak więc, jeśli popełnisz błąd, musisz wprowadzić zmiany w składni programu. W przeciwnym razie nie będzie się kompilować.
co to jest Interpreter?
interpreter jest programem komputerowym, który umieszcza każde polecenie programu wysokiego poziomu w kodzie maszynowym. Obejmuje to kod źródłowy, wstępnie skompilowany kod i skrypty. Zarówno kompilator, jak i interpreter wykonują tę samą pracę, która polega na konwersji języka programowania wyższego poziomu na kod maszynowy. Jednak kompilator konwertuje kod na kod maszynowy (tworzy exe) przed uruchomieniem programu. Interpretery konwertują kod na kod maszynowy podczas uruchamiania programu.
różnica klawiszy
- kompilator przekształca kod napisany w wysokopoziomowym języku programowania w kod maszynowy, jednocześnie, przed uruchomieniem programu, podczas gdy Interpreter obejmuje każdy wysokopoziomowy instrukcja programu, jeden po drugim, do kodu maszynowego, podczas uruchamiania programu.
- skompilowany kod działa szybciej, podczas gdy interpretowany kod działa wolniej.
- kompilator wyświetla wszystkie błędy po kompilacji, z drugiej strony Interpreter wyświetla błędy każdej linii jeden po drugim.
- kompilator bazuje na modelu translation linking-loading, natomiast Interpreter bazuje na metodzie interpretacji.
- kompilator pobiera cały program, podczas gdy Interpreter pobiera pojedynczy wiersz kodu.
różnica między kompilatorem a interpreterem
podstawa różnicy | kompilator | Interpreter |
---|---|---|
etapy programowania |
|
|
zaleta | program kod jest już przetłumaczony na kod maszynowy. Tak więc czas wykonania kodu jest krótszy. | tłumacze są łatwiejsze w użyciu, szczególnie dla początkujących. |
nie można zmienić programu bez powrotu do kodu źródłowego. | interpretowane programy mogą być uruchamiane na komputerach, które mają odpowiedni interpreter. | |
kod maszynowy | przechowuje język maszyny jako kod maszynowy na dysku | w ogóle nie zapisuje kodu maszynowego. |
czas działania | skompilowany kod działa szybciej | interpretowany kod działa wolniej |
Model | jest oparty na modelu translacji języka. | opiera się na metodzie interpretacji. |
generowanie programu | generuje program wyjściowy (w postaci exe), który może być uruchamiany niezależnie od oryginalnego programu. | nie generuje programu wyjściowego. Więc oceniają program źródłowy za każdym razem podczas wykonywania. |
wykonanie | wykonanie programu jest niezależne od kompilacji. Wykonywany jest dopiero po skompilowaniu całego programu wyjściowego. | wykonywanie programu jest częścią procesu interpretacji, więc jest wykonywane linia po linii. |
Wymaganie pamięci | program docelowy wykonuje się niezależnie i nie wymaga kompilatora w pamięci. | interpreter istnieje w pamięci podczas interpretacji. |
najlepiej nadaje się do | ograniczony do określonej maszyny docelowej i nie może być przeniesiony. C i C++ są najpopularniejszym językiem programowania wykorzystującym model kompilacji. | dla środowisk internetowych, w których czasy ładowania są ważne. Ze względu na całą wyczerpującą analizę, Kompilacje zajmują stosunkowo dużo czasu, aby skompilować nawet mały kod, który nie może być uruchamiany wielokrotnie. W takich przypadkach tłumacze są lepsi. |
Optymalizacja kodu | kompilator widzi cały kod z góry. Dlatego wykonują wiele optymalizacji, które sprawiają, że kod działa szybciej | Interpreterzy widzą kod linia po linii, a zatem optymalizacje nie są tak solidne, jak kompilatory |
dynamiczne pisanie | trudne do zaimplementowania, ponieważ Kompilatory nie mogą przewidzieć, co się stanie w czasie kolei. | języki interpretowane obsługa dynamicznego pisania |
wykorzystanie | najlepiej nadaje się do środowiska produkcyjnego | najlepiej nadaje się do środowiska programowania i rozwoju. |
wykonanie błędu | kompilator wyświetla wszystkie błędy i ostrzeżenia w czasie kompilacji. Dlatego nie można uruchomić programu bez Naprawy Błędów | interpreter odczytuje pojedyncze polecenie i pokazuje błąd, jeśli występuje. Musisz poprawić błąd, aby zinterpretować następny wiersz. |
wejście | zajmuje cały program | zajmuje jedną linię kodu. |
wyjście | Kompilatory generują pośredni kod machnie. | Interpreter nigdy nie generuje pośredniego kodu machnie. |
błędy | wyświetl wszystkie błędy po kompilacji, wszystkie w tym samym czasie. | wyświetla wszystkie błędy każdej linii jeden po drugim. |
języki programowania | C,C++,C#, Scala, Java wszystkie używają kompilatora. | PHP, Perl, Ruby używa interpretera. |
rola kompilatora
- Kompilatory odczytują kod źródłowy, wyprowadzają kod wykonywalny
- tłumaczy oprogramowanie napisane w języku wyższego poziomu na instrukcje, które komputer może zrozumieć. Konwertuje tekst zapisany przez programistę na format, który CPU może zrozumieć.
- proces kompilacji jest stosunkowo skomplikowany. Spędza dużo czasu analizując i przetwarzając program.
- wynik wykonywalny jest jakąś formą kodu binarnego specyficznego dla maszyny.
rola interpretera
- interpreter konwertuje kod źródłowy linia po linii w czasie wykonywania.
- Interpreter całkowicie tłumaczy program napisany w języku wysokiego poziomu na język na poziomie maszynowym.
- Interpreter umożliwia ewaluację i modyfikację programu podczas jego wykonywania.
- stosunkowo mniej czasu poświęconego na analizę i przetwarzanie programu
- wykonanie programu jest stosunkowo powolne w porównaniu do kompilatora
języki wysokiego poziomu
języki wysokiego poziomu, takie jak C, C++, JAVA itp., są bardzo blisko angielskiego. Ułatwia to proces programowania. Jednak przed wykonaniem musi zostać przetłumaczony na język maszynowy. Ten proces tłumaczenia jest prowadzony przez kompilator lub interpreter. Znany również jako kod źródłowy.
kod maszynowy
języki maszynowe są bardzo blisko sprzętu. Każdy komputer ma swój język maszynowy. Programy w języku maszynowym składają się z szeregu wzorców binarnych. (Np. 110110) przedstawia proste operacje, które powinny być wykonywane przez komputer. Programy w języku maszynowym są wykonywalne, dzięki czemu mogą być uruchamiane bezpośrednio.
kod obiektowy
podczas kompilacji kodu źródłowego kod maszynowy generowany dla różnych procesorów, takich jak Intel, AMD, ARM jest inny. aby Kod był przenośny, Kod źródłowy jest najpierw konwertowany na kod obiektowy. Jest to kod pośredniczący (podobny do kodu maszynowego), którego żaden procesor nie zrozumie. W czasie wykonywania kod obiektowy jest konwertowany na kod maszynowy platformy bazowej.
Java jest kompilowana i interpretowana.
aby wykorzystać względne zalety kompilatorów są interpreterami niektóre języki programowania, takie jak Java, są zarówno kompilowane, jak i interpretowane. Sam kod Javy jest kompilowany do kodu obiektowego. W czasie działania JVM interpretuje Kod obiektowy na kod maszynowy komputera docelowego.