...

Для чего используются программы трансляторы

Транслятор, компилятор, интерпретатор

Транслятор(англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д. Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

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

Виды трансляторов

  1. Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени (англ.).
  2. Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.
  3. Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.
  4. Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.
  5. Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.
  6. Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера.
  7. Обратный. Для программы в машинном коде выдаёт эквивалентную программу на каком-либо языке программирования (см.: дизассемблер, декомпилятор).

Виды компиляторов

  • Векторизующий. Транслирует исходный код в машинный код компьютеров, оснащённых векторным процессором.
  • Гибкий. Сконструирован по модульному принципу, управляется таблицами и запрограммирован на языке высокого уровня или реализован с помощью компилятора компиляторов.
  • Диалоговый. См.: диалоговый транслятор.
  • Инкрементальный. Повторно транслирует фрагменты программы и дополнения к ней без перекомпиляции всей программы.
  • Интерпретирующий (пошаговый). Последовательно выполняет независимую компиляцию каждого отдельного оператора (команды) исходной программы.
  • Компилятор компиляторов. Транслятор, воспринимающий формальное описание языка программирования и генерирующий компилятор для этого языка.
  • Отладочный. Устраняет отдельные виды синтаксических ошибок.
  • Резидентный. Постоянно находится в оперативной памяти и доступен для повторного использования многими задачами.
  • Самокомпилируемый. Написан на том же языке, с которого осуществляется трансляция.
  • Универсальный. Основан на формальном описании синтаксиса и семантики входного языка. Составными частями такого компилятора являются: ядро, синтаксический и семантический загрузчики.

C++ для начинающих

Программа, написанная на любом языке программирования, является исходной программой. Особенность таких программ заключается в том, что они состоят из инструкций, понятных человеку, но не понятных процессору компьютера. Чтобы процессор мог выполнить работу в соответствии с алгоритмом, записанным в исходной программе, эта программа должна быть переведена на машинный язык — язык команд процессора. Такой перевод программы называется трансляцией (translation — перевод), а выполняется он специальными программами — трансляторами. В силу того что и язык программирования высокого уровня и машинный язык формализованы, трансляция программы может быть автоматизирована и выполнена с помощью той же ЭВМ. При этом человек воспринимает это так, будто ЭВМ непосредственно понимает язык высокого уровня и исполняет алгоритм, записанный на этом языке.

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

Интерпретатор — транслятор, переводящий текст программы поэтапно (покомандно) и сразу же (то есть параллельно) выполняющий оттранслированную команду исходной программы. Программа-интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую инструкцию исходного текста (интерпретирует ее) и немедленно исполняет (т. е. файл на машинном языке не создается). Программа в режиме интерпретации работает гораздо медленнее, чем такая же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения (а не заранее, как при компиляции). Многие инструкции в программе выполняются многократно, — и при каждом выполнении интерпретируются заново. Поэтому всюду, где возможно, стремятся заменить режим интерпретации режимом компиляции. Правда, интерпретация имеет и свои преимущества: с ее помощью проще отлаживать программу. Иногда пользуются режимом “псевдокомпиляции”: ускоряют интерпретацию за счет предварительного запоминания тех или иных элементов разобранных команд в памяти машины.

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

Схематически работу компилятора иллюстрирует рисунок 1.

Цифрой 1 на схеме обозначен блок синтаксического контроля текста программы, цифрой 2 — генератор машинного кода.

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

Последний вид трансляторов — ассемблеры. Они предназначены для перевода программы, написанной на языке ассемблера (автокода), в программу на машинном языке.

Все трансляторы, независимо от их вида, решают следующие основные задачи:

  • выполняют анализ и проверяют синтаксис транслируемой программы;
  • генерируют машинный код программы;
  • распределяют память для выходной программы.

Современное программирование существенно отличается от технологии разработки программ для старых ЭВМ. Среди относительно новых особенностей и направлений этой технологии:

  • применение объектно-ориентированных языков;
  • визуальное программирование (т. е. сборка экранной формы с помощью мыши из готовых «полуфабрикатов» — объектов);
  • быстрая разработка приложений (RAD — Rapid Applications Development);
  • программирование с использованием функций API Windows (Applications Programming Interface — интерфейс прикладного программирования);
  • базы данных и многопользовательские приложения (т. е. приложения, с которыми одновременно работает несколько пользователей) и многие другие.

C++ для начинающих © ЦДЮТТ • 2023

Что такое транслятор, компилятор, интерпретатор, профайлер и отладчик?

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

Транслятор

Транслятор — это программа, которая принимает на вход исходный код на одном языке программирования и переводит его в код на другом языке программирования. Другими словами, транслятор выполняет перевод исходного кода из одного языка в другой. Такой перевод может быть выполнен при помощи высокоуровневых средств (например, Java в C++) или низкоуровневых средств (например, ассемблер в машинный код).

Компилятор

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

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

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

Профайлер

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

Отладчик

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

Выводы

Таким образом, можно сделать важные выводы о различиях между транслятором, компилятором, интерпретатором, профайлером и отладчиком:

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

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

  • Почему Бог не уничтожил Сатану и мятежников сразу же?
  • В каком соединении образуется ковалентная связь по донорно-акцепторному механизму?
  • С чего нужно начинать новые отношения?
  • Чаще всего люди ошибаются. Почему?
  • Помогите, пожалуйста! Нужен ключ для ESET NOD32 ANTIVIRUS 6
  • Почему некоторые из вас ругают все русское? — один только русский язык посмотрите, скольких нас разных объединил
  • Чего вам не хватает больше: веры, надежды или любви?
  • Когда я куплю квартиру?

При подготовке материала использовались источники:
https://studfile.net/preview/4289448/page:2/
http://m-elek.h1n.ru/about/project_files/cpp-new/program/translator.html
https://robo-hamster.ru/a/chto-takoe-translyator-kompilyator-iterpretator-profayler-otladchik-i-chem-vsyo-eto-otlichaetsya

Оцените статью