Что выполняет программа компилятор

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

Например, Java рассчитан в основном на интерпретацию программы, а язык С — на компиляцию. Необходимо помнить, что при разработке языка С его конструкции оптимизировались специально для компиляции. И хотя интерпретаторы С существуют и доступны для программистов (особенно как средства отладки или объект для экспериментов — в качестве такого объекта можно использовать, например, интерпретатор, рассмотренный в части VI этой книги), С разрабатывался преимущественно для компиляции. Поэтому при разработке программ на С большинство программистов используют именно компилятор, а не интерпретатор. Поскольку не все читатели этой книги достаточно хорошо понимают отличие компилятора от интерпретатора, ниже дается краткое разъяснение по этому поводу.

Компиляция и интерпретация за 10 минут

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

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

Читайте также:
Программы для слепых на планшет

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

Источник: t-r-o-n.ru

Компиляторы и интерпретаторы.

Информатика, информационные технологии

С помощью языка программирования создается текст программы, описывающий разработанный алгоритм. Чтобы программа была выполнена, надо либо весь ее текст перевести в машинный код (это действие и выполняет программа — компилятор) и затем передать на исполнение процессору, либо сразу выполнять команды языка, переводя на машинный язык и исполняя каждую команду поочередно (этим занимаются программы — интерпретаторы).

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

Компиляторы полностью обрабатывают весь текст программы (его называют исходным кодом или source code). Они осуществляют поиск синтаксических ошибок, выполняют семантический анализ и только затем, если текст программы в точности соответствует правилам языка, его автоматически переводят (транслируют) на машинный язык (говорят: генерируют объектный код или object code).

Нередко при этом выполняется оптимизация с помощью набора методов, позволяющих повысить быстродействие программы. Сгенерированный объектный код обрабатывается специальной программой — сборщиком или редактором связей, который производит связывание объектного и машинного кодов. Текст программы преобразуется в готовый к исполнению ЕХЕ-файл

Читайте также:
Е7 в мультиварке редмонд на программе жарка что означает

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

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

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

Процесс создания программы включает:

Составление исходного кода программы (рисунок 1) на языке программирования.

Этап трансляции, необходимый для создания объектного кода программы.

Построение загрузочного модуля, готового к исполнению.

Все перечисленные выше действия требуют наличия специальных программных средств.

Рисунок 1. Процесс создания программы, готовой к исполнению

Совокупность этих программных средств входит в состав системы программирования:

Текстовый редактор (необходимый для создания и редактирования исходного кода программы на языке программирования).

Статьи к прочтению:

  • Комплектация пояснительной записки
  • Компоненты локальной сети.

Основы программирования: Компилятор и интерпретатор

Похожие статьи:

  • Особенности построения интерпретаторов Простейшим способом реализации интерпретатора можно было бы считать вариант, когда исходная программа сначала полностью транслируется в машинные команды,…
  • Трансляторы и интерпретаторы языков программирования Конкретными исполнителями языков программирования являются трансляторы и интерпретаторы. Транслятор представляет собой программу, на основе которой…
Читайте также:
Генератор частоты звука программа

Источник: csaa.ru

Компилятор и интерпретатор

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

Схема работы интерпретатора:

Схема работы интерпретатора фото

  1. Независимость от ОС (переносимость кода).
  2. При внесении изменений НЕ требуется перекомпиляция кода.
  1. Для запуска программы требуется наличие интерпретатора.
  2. Низкая скорость работы.

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

Схема работы компилятора:

Схема работы компилятора фото

  1. Быстрота работы программ;
  2. Отсутствие надобности компилятора на компьютере пользователя.
  1. Программа зависит от ОС, под которую была скомпилирована.
  2. При внесении изменений требуется перекомпиляция кода.

Презентацию с видео можно скачать на Patreon .

Источник: www.examclouds.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru