No Image

Чем отличается компилятор от интерпретатора

СОДЕРЖАНИЕ
1 просмотров
11 марта 2020

Интерпретатор и Компилятор играют очень важную роль в исполнении программ на компьютерном языке. Многие люди склонны думать, что оба они похожи друг на друга. Тем не менее, они оба различаются в разных контекстах.

Мы можем общаться только с компьютерами на их языке. Компьютеры понимают только двоичный язык 0 и 1. Однако большинство программ написаны на высоких языках и, следовательно, должны быть переведены в двоичном виде. Интерпретатор и компилятор – это программы, которые переводят язык программ на понятный компьютеру машинный язык. Вы можете подумать, что оба служат одной и той же цели, тогда как они оба отличаются друг от друга.

Самое большое различие между ними состоит в том, что компилятор напрямую изменяет исходный код на машинный язык, тогда как интерпретатор создает промежуточный код, а затем выполняет этот код для формирования машинно-понятного кода. Переводчики и компиляторы имеют одну и ту же задачу по переводу исходного кода в машинный код, но они отличаются в способах достижения этого перевода. Компиляторы обладают диагностическими возможностями и, таким образом, при компиляции программы высокого уровня могут выдавать соответствующие сообщения об ошибках. В случае интерпретатора объектный код не сохраняется и, следовательно, не может быть использован повторно.

Компилятор создает объектный код перед созданием для него исполняемого файла. Скомпилированная программа напрямую выполняется с использованием объектного кода. С другой стороны, переводчик

выполняет исходный код, читая по одной строке за раз. Во время выполнения собственный код выполняется построчно. И компиляторы, и интерпретаторы написаны на языках программирования высокого уровня. Например, Java-интерпретатор может быть написан на Java, Pascal и т. Д. Оба имеют свои преимущества и недостатки. Оба подхода могут быть смешаны для достижения гибридного подхода. Например, на языке LISP разработка выполняется в интерпретируемой среде LISP. Полученные модули затем хорошо тестируются и могут быть скомпилированы компилятором LISP. Различия перечислены ниже в таблице:

Читайте также:  Как вставить страницу сверху в ворде

составитель

переводчик

Высокий уровень обучения машинному языку

Инструкция высокого уровня в промежуточный код

цифровая электроника вычислительная техника встраиваемые системы

В чем разница между компилятором и интерпретатором?

Обычно мы пишем компьютерные программы с использованием какого-либо языка высокого уровня. Язык высокого уровня – это тот, который понятен нам, людям. Он содержит слова и фразы на английском (или другом) языке. Но компьютер (а точнее его процессор) не понимает язык высокого уровня. Он понимает только программу, написанную в двоичном формате (в виде ноликов и единичек), называемую машинным кодом. Для этого потребуется компилятор или интерпретатор.

Компилятор и интерпретатор по своей сути выполняют одинаковую задачу – конвертируют команды высокоуровневого языка (например, C++, Java, Python) в двоичную форму, которая понятна компьютерному оборудованию. Такие инструменты представляют собой программное обеспечение, применяемое для выполнения высокоуровневых программ и кодов для реализации различных задач. Конкретные компиляторы и интерпретаторы предназначены для различных языков высокого уровня. Однако как у компилятора, так и у интерпретатора есть одна и та же цель, но они различаются тем, как они выполняют свою задачу, то есть как преобразуют команды высокоуровневого языка в машинные инструкции. В данном материале мы поговорим об основном принципе функционирования обоих инструментов и выясним основное различие между компилятором и интерпретатором.

Компилятор

Компилятор представляет собой фрагмент кода, который преобразует инструкции высокоуровневого языка в машинные команды для процессора. Когда программист записывает код на высокоуровневом языке, например, на C++, и хочет его выполнить, перед тем, как он будет исполнен, используется конкретный компилятор, предназначенный для C++. Компилятор сперва проверяет и обрабатывает всю программу, а затем переводит ее в машинный код, который будет выполняться процессором, вследствие этого будут выполняться соответствующие задачи.

Читайте также:  Скрыть текст html код

На этом рисунке показан основная схема процесса компиляции. Здесь программа, созданная на языке высокого уровня, известна как исходная программа, а преобразованная называется объектной.

Интерпретатор

Интерпретаторы не так значительно различаются от компиляторов. Они также преобразуют инструкции языка высокого уровня в соответствующие машиночитаемые двоичные команды. Когда интерпретатор принимает код высокоуровневого языка, который должен быть выполнен, он преобразует его в промежуточный код перед преобразованием его в машинные инструкции. Каждый кусок кода интерпретируется, а затем исполняется отдельно в последовательности, а если в части кода обнаруживается ошибка, она останавливает интерпретацию кода без перевода к следующему набору кодов.

Приведенный выше рисунок демонстрирует, что сначала исходный код переводится в промежуточную форму, а затем выполняется интерпретатором.

Как Компилятор так и Интерпретатор имеют одно предназначение — конвертировать инструкции языка высокого уровня (как C или Java) в бинарную форму, понятную компьютеру. Это программное обеспечение, используемое для запуска высокоуровневых программ и кодов выполняемых различные задачи. Для разных высокоуровневых языков разработаны специфичные компиляторы/интерпретаторы. Не смотря на то что как компилятор так и интерпретатор преследуют одну и ту же цель, они отличаются способом выполнения своей задачи, то есть конвертирования высокоуровневого языка в машинные инструкции. В этой статье мы поговорим о базовой работе обоих и выделим главные отличия между компилятором и интерпретатором.

Компилятор

Компилятор транслирует высокоуровневый язык в машинный. Когда пользователь пишет код на языке высокого уровня, таком как Java, и хочет его выполнить, то прежде чем это может быть сделано, будет использован специальный компилятор разработанный для Java. Компилятор сначала сканирует всю программу, а потом транслирует ее в машинный код, который будет выполнен компьютерным процессором, после чего будут выполнены соответствующие задачи.

Читайте также:  Вконтакте восстановить страницу после удаления через телефон

На картинке показано базовое очертание процесса компиляции. Тут программа написанная на языке высокого уровня показана как «Исходный код», а сконвертированный называется «Исполняемый код».

Интерпретатор

Интерпретаторы не очень сильно отличаются от компиляторов. Они также конвертируют высокоуровневые языки в читаемые машиной бинарные эквиваленты. Каждый раз когда интерпретатор получает на выполнение код языка высокого уровня, то прежде чем сконвертировать его в машинный код, он конвертирует этот код в промежуточный язык. Каждая часть кода интерпретируется и выполняется отдельно и последовательно, и если в какой-то части будет найдена ошибка, она остановит интерпретацию кода без трансляции следующей части кода.

Очертание процесса интерпретации на картинке выше показывает, что сначала исходный код конвертируется в промежуточную форму, а затем выполняется интерпретатором.

Ниже перечислены главные отличия между компилятором и интерпретатором:

  • Интерпретатор берет одну инструкцию, транслирует и выполняет ее, а затем берет следующую инструкцию. Компилятор же транслирует всю программу сразу, а потом выполняет ее.
  • Компилятор генерирует отчет об ошибках после трансляции всего, в то время как интерпретатор прекратит трансляцию после первой найденной ошибки.
  • Компилятор по сравнению с интерпретатором требует больше времени для анализа и обработки языка высокого уровня.
  • Помимо времени на обработку и анализ, общее время выполнения кода компилятора быстрее в сравнении с интерпретатором.
Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector