Мислили ли сте някога как компютърът разбира вашата команда?

Компютърът може да интерпретира само програми, които са под формата на 0 и 1. Следователно преобразуването от изходния код в машинен код определя крайната програма.

Интерпретаторите и компилаторите са отговорни за това преобразуване на езика за програмиране или скриптове (език от високо ниво) в машинен код. Но ако и двамата правят едни и същи неща, какво ги прави различни? Нека да разгледаме това.

КОМПИЛАТОР

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

Компилаторът е компютърна програма, която превежда компютърен код, написан на един език за програмиране, на друг език за програмиране. Компилаторът взема цялата програма и я преобразува в изпълним компютърен код. Необходима е цяла програма, защото компютърът разбира само програмата, написана с 0 и 1, и преобразува изпълнимата програма в машинен код, който се разпознава от компютъра. Примери за компилирани езици за програмиране са C и C++.

  • „Компилатор“ се използва предимно за програми, които превеждат изходния код от език за програмиране на високо ниво на език за програмиране от по-ниско ниво.

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

ПРЕВОДАЧ

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

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

Интерпретаторът се дефинира като машинна програма, която директно изпълнява набор от инструкции, без да ги компилира. Примери за интерпретирани езици са Perl, Python и Matlab.

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

КАК РАБОТИ?

Започвайки с това, компилаторът създава програмата. Той ще анализира всички езикови твърдения, за да провери дали са правилни или не. Ако попадне на нещо неправилно, ще изведе съобщение за грешка. Ако няма открити грешки, компилаторът ще преобразува изходния код в машинен код. Компилаторът свързва различните кодови файлове в програми, които могат да се изпълняват, като exe. Накрая програмата се изпълнява.

Преводач създава програмата. Нито свързва файловете, нито генерира машинен код. Изразите на източника се изпълняват ред по ред, докато се изпълнява програмата.

ПРЕДИМСТВА НЕДОСТАТЪЦИ

Предимства на компилатора

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

Недостатъци на компилатора

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

Предимства на преводача

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

Недостатъци на интерпретатора

  • Всеки път, когато програмата се изпълнява, се отделя време за интерпретиране, следователно времето за изпълнение е по-бавно.
  • Интерпретираните програми могат да се изпълняват само на компютрите, които имат съответните интерпретатори.

РАЗЛИКА

Тук ще бъдете по-ясни относнокомпилатораиинтерпретатора-

Моля, коментирайте, ако намерите нещо неправилно или искате повече информация относно темата, обсъдена по-горе.

Посетете връзката по-долу за още блогове на python:



Посетете нашият уеб сайт:



Автор: Рия Патидар

Редактор: Ашутош Рагуванши, Девендра Патидар