Компилатор срещу преводач: Пълна разлика между компилатор и преводач

Съдържание:

Anonim

Какво е компилатор?

Компилаторът е компютърна програма, която трансформира код, написан на език за програмиране на високо ниво, в машинен код. Това е програма, която превежда разбираемия от човека код на език, който компютърният процесор разбира (двоични 1 и 0 бита). Компютърът обработва машинния код, за да изпълнява съответните задачи.

Компилаторът трябва да се съобрази с правилото за синтаксис на този програмен език, на който е написан. Компилаторът обаче е само програма и не може да коригира грешки, открити в тази програма. Така че, ако сгрешите, трябва да направите промени в синтаксиса на вашата програма. В противен случай няма да се компилира.

Какво е преводач?

Преводачът е компютърна програма, която обхваща всяко изявление на програмата на високо ниво в машинния код. Това включва изходен код, предварително компилиран код и скриптове. И компилаторът, и интерпретаторите вършат една и съща работа, която превръща езика за програмиране от по-високо ниво в машинен код. Компилаторът обаче ще преобразува кода в машинен код (създаде exe) преди стартиране на програмата. Преводачите преобразуват код в машинен код, когато програмата се изпълнява.

КЛЮЧОВА РАЗЛИКА

  • Компилаторът трансформира код, написан на език за програмиране на високо ниво, в машинен код, веднага, преди стартиране на програмата, докато интерпретатор обхваща всеки оператор на високо ниво, един по един, в машинен код, по време на изпълнението на програмата.
  • Компилираният код работи по-бързо, докато интерпретираният код работи по-бавно.
  • Компилаторът показва всички грешки след компилацията, от друга страна, Интерпретаторът показва грешки на всеки ред една по една.
  • Компилаторът се основава на модел за свързване и зареждане на превода, докато интерпретаторът се основава на метод на интерпретация.
  • Компилаторът приема цяла програма, докато Интерпретаторът взема един ред код.

Разлика между съставител и преводач

Основа на разликата Съставител Преводач
Стъпки за програмиране
  • Създайте програмата.
  • Компилирането ще анализира или анализира всички езикови изявления за тяхната коректност. Ако е неправилно, извежда грешка
  • Ако няма грешка, компилаторът ще преобразува изходния код в машинен код.
  • Той свързва различни кодови файлове в работеща програма (позната като exe)
  • Стартирайте програмата
  • Създайте програмата
  • Без свързване на файлове или генериране на машинен код
  • Изявленията на източника се изпълняват ред по ред ПО ВРЕМЕ на изпълнение
Предимство Кодът на програмата вече е преведен в машинен код. По този начин времето за изпълнение на кода е по-малко. Преводачите са по-лесни за използване, особено за начинаещи.
Недостатък Не можете да промените програмата, без да се върнете към изходния код. Интерпретираните програми могат да се изпълняват на компютри, които имат съответния интерпретатор.
Машинен код Съхранявайте машинния език като машинен код на диска Изобщо не се запазва машинен код.
Време за работа Компилираният код работи по-бързо Интерпретираният код работи по-бавно
Модел Той се основава на модел за превод на езика за превод-зареждане. Тя се основава на Метод на тълкуване.
Генериране на програма Генерира изходна програма (под формата на exe), която може да се изпълнява независимо от оригиналната програма. Не генерирайте изходна програма. Така те оценяват програмата източник всеки път по време на изпълнението.
Екзекуция Изпълнението на програмата е отделно от компилацията. Той се изпълнява само след като цялата изходна програма е компилирана. Изпълнението на програмата е част от процеса на тълкуване, така че се извършва ред по ред.
Изискване за памет Целевата програма се изпълнява независимо и не изисква компилаторът в паметта. Интерпретаторът съществува в паметта по време на интерпретация.
Най-подходящ за Ограничен към конкретната целева машина и не може да бъде пренесен. C и C ++ са най-популярният език за програмиране, който използва компилационен модел. За уеб среди, където времето за зареждане е важно. Поради изчерпателния анализ, компилациите отнемат относително по-голямо време за компилиране дори на малък код, който може да не се изпълнява многократно. В такива случаи устните преводачи са по-добри.
Оптимизация на кода Компилаторът вижда целия код предварително. Следователно те извършват много оптимизации, които карат кода да работи по-бързо Тълкувателите виждат код ред по ред и по този начин оптимизациите не са толкова стабилни, колкото компилаторите
Динамично писане Трудно за изпълнение, тъй като компилаторите не могат да предвидят какво се случва по време на завой. Интерпретираните езици поддържат динамично писане
Употреба Той е най-подходящ за производствената среда Той е най-подходящ за програмата и за развитието на средата.
Изпълнение на грешка Компилаторът показва всички грешки и предупреждения по време на компилацията. Следователно не можете да стартирате програмата, без да коригирате грешки Интерпретаторът чете единичен израз и показва грешката, ако има такава. Трябва да коригирате грешката, за да интерпретирате следващия ред.
Вход Отнема цяла програма Отнема един ред код.
Изход Compliers генерира междинен машинен код. Преводачът никога не генерира никакъв междинен код на Machnie.
Грешки Показване на всички грешки след, компилация, всички едновременно. Показва всички грешки на всеки ред една по една.
Съответни езици за програмиране C, C ++, C #, Scala, Java всички използват complier. PHP, Perl, Ruby използва интерпретатор.

Роля на съставителя

  • Compliers чете изходния код, извежда изпълним код
  • Превежда софтуера, написан на език от по-високо ниво, в инструкции, които компютърът може да разбере. Той преобразува текста, който програмист записва, във формат, който процесорът може да разбере.
  • Процесът на компилация е сравнително сложен. Отделя много време на анализ и обработка на програмата.
  • Изпълнимият резултат е някаква форма на специфичен за машината двоичен код.

Роля на преводача

  • Интерпретаторът преобразува изходния код ред по ред по време на RUN Time.
  • Interpret напълно превежда програма, написана на език от високо ниво, в език на машинно ниво.
  • Преводачът позволява оценка и модификация на програмата, докато тя се изпълнява.
  • Относително по-малко време, отделено за анализ и обработка на програмата
  • Изпълнението на програмата е относително бавно в сравнение с компилатора

ЕЗИЦИ НА ВИСОКО НИВО

Езиците на високо ниво, като C, C ++, JAVA и др., Са много близки до английския. Това улеснява процеса на програмиране. Той обаче трябва да бъде преведен на машинен език преди изпълнение. Този процес на превод се провежда или от съставител, или от преводач. Известен също като изходен код.

МАШИНЕН КОД

Езиците на машината са много близки до хардуера. Всеки компютър има своя машинен език. Програмите за машинен език са съставени от поредица от двоичен модел. (Напр. 110110) Представлява простите операции, които трябва да се извършват от компютъра. Програмите за машинен език са изпълними, за да могат да се изпълняват директно.

ОБЕКТЕН КОД

При компилирането на изходния код машинният код, генериран за различни процесори като Intel, AMD, ARM, е различен. tЗа да се направи преносим код, първоначалният код се преобразува първо в Object Code. Това е посреднически код (подобен на машинния код), който никой процесор няма да разбере. По време на изпълнение обектният код се преобразува в машинния код на основната платформа.

Java е компилирана и интерпретирана.

За да се използват относителните предимства на компилаторите са интерпретатори, някои програмни езици като Java се компилират и интерпретират. Самият Java код се компилира в Object Code. По време на изпълнение JVM интерпретира обектния код в машинен код на целевия компютър.