Программа транслятор что это

Трансляторы: определение, назначение, виды. Основные этапы трансляции программы

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

Сущность понятия «транслятор». Виды трансляторов

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

  1. Трансляторы, компилирующие окончательный исполняемый код.
  2. Трансляторы, компилирующие интерпретируемый код, для выполнения которого требуется дополнительное программное обеспечение.

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

Урок 1. Краткая история языков программирования. Трансляторы

Решим твою учебную задачу всего за 30 минут
Попробовать прямо сейчас

Языки, которые формируют окончательный исполняемый код, именуются компилируемыми языками. К ним относятся языки С, C++, FORTRAN, Pascal. Языки, которые реализуют интерпретируемый код, носят название интерпретируемых языков. К таким языкам могут быть отнесены языки Java, LISP, Perl, Prolog.

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

Объектный код, который создаётся компилятором, состоит из области данных и области машинных команд, обладающих адресами, далее согласуемых редактором связи (иногда именуемым). Редактор связи распределяет в едином адресном пространстве все, по отдельности, откомпилированные, объектные модули и разные, подключаемые статически, библиотеки. Исполняемой формой программы является код, получаемый в результате трансляции исходной программы.

Подобрали для написания работы по теме «Трансляторы: определение, назначение, виды. Основные этапы трансляции программы»

Готовые курсовые работы и рефераты
Консультации эксперта по предмету
Помощь в написании учебной работы

Процесс трансляции

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

Читайте также:
Что за программа модуль службы

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

  1. Трансляторы однопроходного типа.
  2. Трансляторы двухпроходного типа.
  3. Трансляторы, выполняющие более двух проходов.

Основным достоинством однопроходного компилятора считается высокая скорость компиляции, а главным недостатком является формирование, как правило, не очень эффективного кода.

Широко распространены двухпроходные компиляторы, поскольку они дают возможность на первом проходе осуществить анализ программы и сформировать информационные таблицы, которые используются при втором проходе для создания объектного кода.

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

Рисунок 1. Этапы трансляции.

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

Различия интерпретатора и компилятора: что выбрать

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

Низкоуровневые

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

Различия интерпретатора и компилятора: что выбрать

На таких ЯП пишут драйвера, операционные системы и всевозможные технические программы, необходимые для работы компьютера. Это, например, языки семейства Ассемблер и C. Из их свойств следуют преимущества и недостатки:

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

Высокоуровневые

Абстрактные языки, по своему строению похожи на человеческие.

На них разрабатывают разнообразные программы, начиная с игр и фоторедакторов, заканчивая нейросетями и обработчиками данных.

Различия интерпретатора и компилятора: что выбрать

Это всем знакомые Python, C++, C#, Java, PHP и многие другие ЯП. Они обладают как плюсами, так и минусами:

  • Объемность – программы на этих языках занимают много места в памяти, да и по скорости уступают предыдущим.
  • Портативность – работать с языками такого рода можно на почти любом компьютере. Написанные на них скрипты не связаны одной моделью процессора, и, зачастую, ограничены только операционной системой (Linux, macOS, Windows).
  • Понятность – высокоуровневые ЯП состоят из слов английского языка, их изучение намного проще.
Читайте также:
Программа пмпк что это такое

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

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

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

Различия интерпретатора и компилятора: что выбрать

Структура

Работа первых компиляторов обычно состояла из двух этапов:

  • Компиляция – сам транслятор кода;
  • Компоновка – процесс собирания переведенного кода в исполняемый файл.

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

Результат работы

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

Байт код

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

Различия интерпретатора и компилятора: что выбрать

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

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

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

Типы

Обычный

Механизм его работы был описан выше. Он просто переводит и сразу выполняет команды по строкам и продолжает, если нет ошибок или каких-либо помех.

Компилирующего типа

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

Читайте также:
Что за программа ark

Различия интерпретатора и компилятора: что выбрать

Чем же всё-таки различаются компиляторы и интерпретаторы?

Перед началом сравнения стоит более подробно изучить объекты, которые мы будет сравнивать.

Сильные и слабые стороны:

Преимущества компилятора:

  • Быстрота – пожалуй, самый основной плюс. Сначала код переводится в понятный машине вид, а уже после ее можно выполнить. Также прибавку к скорости дает тот факт, что перед исполнением вся программа проходит проверку на ошибки, и соответственно, программист не будет ждать пол часа, чтобы обнаружить пропущенную запятую в середине программы.
  • Надёжность – результат работы компилятора не зависит от исходного скрипта, поэтому у неаккуратного пользователя будет меньше шансов его испортить. Да и работа злоумышленников в таком случае значительно затруднена.
  • Кроссплатформенность – после компиляции можно получить выполняемую программу, например exe файл, распространение которого между операционными системами не составит труда.

Недостатки компилятора:

  • Объем — во время компиляции переводится вся программа, поэтому выходной файл выходит большим.
  • Точность – для того, чтобы компилировать программу, в ней не должно быть ошибок, что может быть проблематично, если вы хотите проверить только ее часть.

Преимущества интерпретатора:

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

Недостатки интерпретатора:

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

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

Различия интерпретатора и компилятора: что выбрать

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

Интерпретируемые:

Компилируемые:

Компилируемые в байт код:

Также важен уровень мастерства программиста. Для новичка скорее подойдет интерпретатор, ведь на нем намного легче искать ошибки. Для профессионала же важнее скорость, поэтому ему лучше выбрать компилятор.

Похожие записи:

  1. Рейтинг языков программирования в 2022 году
  2. Базы данных в 2022году: какие бывают
  3. Разработчик мобильных приложений: кто это и как им стать в 2022 году
  4. Программы для написания кода: Топ 20. IDE, редакторы кода и полезные утилиты

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

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