Asembler vs Interpreter
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ęzyk źródłowy jest językiem wysokiego poziomu, takim jak C ++, a językiem docelowym jest 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. Z drugiej strony tłumacze to narzędzia, które wykonują instrukcje napisane w jakimś języku programowania. Interpreter może albo bezpośrednio wykonać kod źródłowy wysokiego poziomu, albo przetłumaczyć go na kod pośredni, a następnie zinterpretować lub wykonać kod prekompilowany.
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.
Kim jest tłumacz?
Tłumacz to program komputerowy lub narzędzie, które wykonuje instrukcje programowe. Interpreter może albo wykonać kod źródłowy bezpośrednio, albo przekonwertować źródło na kod pośredni i wykonać go bezpośrednio lub wykonać wstępnie skompilowany kod utworzony przez kompilator (niektóre systemy interpreterów zawierają kompilator do tego zadania). Języki takie jak Perl, Python, MATLAB i Ruby to przykłady języków programowania, które używają kodu pośredniego. UCSD Pascal interpretuje wstępnie skompilowany kod. Języki takie jak Java, BASIC i Samlltalk najpierw kompilują źródło do kodu pośredniego nazywanego kodem bajtowym, a następnie interpretują go.
Jaka jest różnica między asemblerem a tłumaczem?
Asembler można uznać za specjalny typ kompilatora, który tłumaczy tylko język asemblera na kod maszynowy. Tłumacze to narzędzia, które wykonują instrukcje napisane w jakimś języku. Systemy interpreterów mogą zawierać kompilator do wstępnej kompilacji kodu przed interpretacją, ale interpretera nie można nazwać specjalnym typem kompilatora. Asemblery tworzą kod wynikowy, który może wymagać połączenia za pomocą programów konsolidujących w celu uruchomienia na maszynie, ale większość interpreterów może samodzielnie ukończyć wykonanie programu. Asembler zazwyczaj wykonuje tłumaczenie jeden do jednego, ale nie jest to prawdą w przypadku większości tłumaczy. Ponieważ język asemblera ma mapowanie jeden do jednego z kodem maszynowym, asembler może być użyty do tworzenia kodu, który działa bardzo wydajnie w sytuacjach, w których wydajność jest bardzo ważna (np. Silniki graficzne,systemy wbudowane z ograniczonymi zasobami sprzętowymi w porównaniu z komputerem osobistym, takie jak kuchenki mikrofalowe, pralki itp.). Z drugiej strony tłumacze ustni są wykorzystywani, gdy potrzebujesz dużej przenośności. Na przykład ten sam kod bajtowy Java można uruchomić na różnych platformach za pomocą odpowiedniego interpretera (JVM).