Программа которая создает эквивалентную программу на машинном языке называется

Определение 5. Транслятор — это программа или техническое средство, которая переводит программу на исходном (входном) языке в эквивалентную ей программу на результирующем (выходном) языке.

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

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

Создаем свой ЯЗЫК ПРОГРАММИРОВАНИЯ. Лексер, Парсер, Абстрактное синтаксическое дерево (AST)

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

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

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

Входной информацией для компилятора является описание алгоритма или программа на языке программирования. На выходе компилятора – эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

Определение 7. Компиляция — преобразование программы, представленной на одном из языков программирования, в коды на машинно-ориентированном языке, которые принимаются и исполняются непосредственно процессором.

Читайте также:
Что значит запуск программы невозможен отсутствует api ms win crt

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

Этапы компиляции на Си: предобработка, трансляция, компоновка

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

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

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

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

Транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд, 10 букв

Вопрос с кроссворда: «транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд», по вертикали 1 0 букв, что за слово?

Четвертая буква «п» .

Седьмая буква «я» .

Восьмая буква «т» .

Девятая буква «о» .

Десятая буква «р» .

Правильным ответом является слово: компилятор

Что значит слово «компилятор» в словаре?

(англ. compiler от compile — составлять — компилировать), винформатике — то же, что транслятор.

Читайте также:
Программа извлечения звука из видео

(Большой Энциклопедический Словарь)

Другие вопросы в кроссвордах и сканвордах для слова «компилятор»

  • Тот, кто занимается компиляцией
  • Программа, переводящая описание алгоритма на одном языке на другой язык (в т. ч. машинные коды)
  • Программа перевода исходного кода компьютерной программы в объектный машинный код
  • Программа для трансляции высокоуровневого языка в абсолютный код или в языках ассемблера
  • Компьютерная программа
  • Часть системы программирования, обеспечивающая перевод программы с языка программирования на машинный язык
  • Род компьютерной программы
  • Схема автоматического перевода программ, обычно с языка программирования на язык конкретной машины (в информатике)

Смотрите также

  • Фонетический разбор словосочетания «компилятор»
  • Синониму к словосочетанию «компилятор»
  • Сочетаемость словосочетания «компилятор»
  • Значение слов
  • Морфемный разбор слов
  • Фонетический разбор слов
  • Сочетаемость слов
  • Определения слов
  • Ассоциации
  • Синонимы
  • Предложения со словом
  • Ответы на кроссворды
  • Контакты
  • Добавить термин

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

Компилятор и интерпретатор в программировании: в чем разница

Lorem ipsum dolor

Компиляция — это процесс преобразования программного кода из одного языка программирования в другой. Компилятор — это программа, которая проводит компиляцию.

Компилятор использует всю программу сразу и преобразует ее в код, который сможет запуститься на устройстве. Самый простой пример — это файлы с расширением «.ехе» на Windows. То ест ь в ы пишите какую-то программу для работы под управлением Виндовс, допустим , на языке С++. Сразу запустить ее в системе не получится, потому что система ее не поймет.

Поэтому вам нужно будет провести ее через компилятор, то есть скомпилировать. Сделав это , вы получ ите вашу же программу, но уже в «.exe»-файле. Если вы откроете «.exe»-файл вашей программы, тогда вы заметите, что ничего общего с исходным кодом программы на С++ там нет. В «.ехе»-файлах вы увидите непонятный набор символов, но пока еще не двоичный код.

Суть компилятора — это взять всю программу и перевести ее из высокоуровневого представления в низкоуровневое.

Интерпретация и интерпретатор — что это такое?

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

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

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

Читайте также:
Почему в программе utorrent

Компилятор и интерпретатор: особенности подходов

Напишем

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

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

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

Отметим ряд особенностей интерпретации и компиляции:

  1. После компиляции программный код готов к исполнению на устройстве, так как уже имеет машинное представление.
  2. Скомпилированный код выполняется быстрее, чем исходный код при интерпретировании.
  3. Скомпилированный код сложно откорректировать , п оэтому тут два эффекта : с одной стороны, компиляция защищает исходный код программы от постороннего вмешательства. С другой стороны, если разработчику программы нужно внести какие-то изменения, он это делает в исходном коде, а потом нужно перекомпилировать программу.
  4. Компилятор оптимизирует и определяет наличие ошибок в коде во время компиляции.
  5. Компилятор требует больше системных ресурсов, чем интерпретатор.
  6. Интерпретатор не «грузит» систему, потому что преобразует по одной инструкции за один раз.
  7. Интерпретируемые программы легко корректировать.
  8. При интерпретации путь программы от исходного кода и до ее исполнения короче, чем при компиляции.
  9. Компилятор сохраняет результат своей работы в виде отдельного файла, а интерпретатор выполняет работу «на лету».

Интерпретируется или компилируется программа — зависит от того, на каком языке программирования она написана.

Заключение

Теперь вы знаете, что «компилятор или компиляция» и «интерпретатор или интерпретация» — это разные инструменты одного действия. Это инструменты, которые конвертируют программы, написанные на высокоуровневых языках, в код, который понимает процессор устройства.

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

Главный минус компиляции — это сложность поддержки и сложность компилируемых языков. Главный плюс — компилируемые программы работают быстрее.

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