Asembler vs Compiler
Ogólnie rzecz biorąc, kompilator to program komputerowy, który czyta program napisany w jednym języku, który nazywa się językiem źródłowym, i tłumaczy go na inny język, który jest nazywany językiem docelowym. Tradycyjnie język źródłowy był językiem wysokiego poziomu, takim 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 obiektu. Asemblery są takimi narzędziami. Tak więc zarówno asemblery, jak i kompilatory ostatecznie wytwarzają 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, który nazywa się językiem źródłowym, i tłumaczy go na inny język, który jest 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. Ogólnie rzecz biorąc, 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 elementem jest skaner (znany również jako analizator leksykalny). Skaner odczytuje program i konwertuje go na ciąg tokenów. Drugi składnik to analizator składni. Konwertuje ciąg tokenów na drzewo analizujące (lub abstrakcyjne drzewo składniowe), które przechwytuje strukturę składniową programu. Kolejnym składnikiem są procedury semantyczne, które interpretują semantykę struktury syntaktycznej. Po tym następują optymalizacje kodu i końcowe generowanie kodu.
Co to jest asembler?
Asembler to oprogramowanie lub narzędzie, które tłumaczy język asemblera na kod maszynowy. Asembler to typ 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 proces tworzenia i debugowania programu. Na przykład typ asemblerów zwanych asemblerami makr zapewnia funkcję makr.
Jaka jest różnica między asemblerem i kompilatorem?
Kompilator to program komputerowy, który czyta program napisany w jednym języku i tłumaczy go na inny język, a asembler można uznać 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 wytwarzają kod obiektowy, który może wymagać połączenia za pomocą programów konsolidujących w celu uruchomienia na komputerze. Ponieważ język asemblera ma mapowanie jeden na jeden 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 do komputera osobistego takich jak kuchenki mikrofalowe, pralki itp.).