Różnica Między Asemblerem A Kompilatorem

Różnica Między Asemblerem A Kompilatorem
Różnica Między Asemblerem A Kompilatorem

Wideo: Różnica Między Asemblerem A Kompilatorem

Wideo: Różnica Między Asemblerem A Kompilatorem
Wideo: Gynvael's Livestream #71: Assembler (kompilator) cz. 1 2024, Może
Anonim

Asembler vs kompilator

Ogólnie rzecz biorąc, kompilator to program komputerowy, który czyta program napisany w jednym języku, zwanym językiem źródłowym, i tłumaczy go na inny język, nazywany językiem docelowym. Tradycyjnie językiem źródłowym był język wysokiego poziomu, taki jak C ++, a językiem docelowym był język niskiego poziomu, taki jak język asemblera. Istnieją jednak kompilatory, które mogą konwertować program źródłowy napisany w języku asemblera i konwertować go na kod maszynowy lub kod obiektowy. Asemblery są takimi narzędziami. Tak więc zarówno asemblery, jak i kompilatory ostatecznie tworzą kod, który można bezpośrednio wykonać na maszynie.

Co to jest kompilator?

Kompilator to program komputerowy, który czyta program napisany w jednym języku, zwanym językiem źródłowym, i tłumaczy go na inny język, nazywany językiem docelowym. Najczęściej językiem źródłowym jest język wysokiego poziomu, a językiem docelowym jest język niskiego poziomu. Zatem generalnie kompilatory mogą być postrzegane jako tłumacze, którzy tłumaczą z jednego języka na inny. Ponadto kompilatory wykonują pewne optymalizacje kodu. Typowy kompilator składa się z kilku głównych komponentów. Pierwszym komponentem jest skaner (znany również jako analizator leksykalny). Skaner czyta program i konwertuje go na ciąg tokenów. Drugi składnik to parser. Konwertuje ciąg tokenów na drzewo parsowania (lub abstrakcyjne drzewo składniowe), które przechwytuje składniową strukturę programu. Następnym elementem są procedury semantyczne, które interpretują semantykę struktury składniowej. Następuje optymalizacja kodu i ostateczne generowanie kodu.

Co to jest asembler?

Assembler to oprogramowanie lub narzędzie, które tłumaczy język asemblera na kod maszynowy. Tak więc asembler jest typem kompilatora, a kod źródłowy jest napisany w języku asemblera. Asembler jest językiem czytelnym dla człowieka, ale zazwyczaj ma relację jeden do jednego z odpowiednim kodem maszynowym. Dlatego mówi się, że asembler wykonuje tłumaczenie izomorficzne (mapowanie jeden do jednego). Zaawansowane asemblery zapewniają dodatkowe funkcje wspierające procesy tworzenia programów i debugowania. Na przykład typ asemblerów zwany asemblerami makr zapewnia funkcję makr.

Jaka jest różnica między asemblerem a kompilatorem?

Kompilator to program komputerowy, który czyta program napisany w jednym języku i tłumaczy go na inny język, podczas gdy asembler może być uważany za specjalny typ kompilatora, który tłumaczy tylko język asemblera na kod maszynowy. Kompilatory zwykle wytwarzają kod wykonywalny maszyny bezpośrednio z języka wysokiego poziomu, ale asemblery tworzą kod wynikowy, który może wymagać połączenia za pomocą programów konsolidujących, aby mógł działać na maszynie. Ponieważ język asemblera ma mapowanie jeden do jednego z kodem maszynowym, asembler może być używany do tworzenia kodu, który działa bardzo wydajnie w sytuacjach, w których wydajność jest bardzo ważna (np. Silniki graficzne, systemy osadzone z ograniczonymi zasobami sprzętowymi w porównaniu z komputerem osobistym kuchenki mikrofalowe, pralki itp.).

Zalecane: