Программы трансляторы или компиляторы

6 Трансляторы, компиляторы и интерпретаторы Язык программирования – это совокупность команд и операторов (ключевых слов) и вспомогательных символов, позволяющих описывать алгоритмы решения задач. Программа – это алгоритм решения задачи, записанный на языке программирования. Алгоритм – последовательность действий (операций) при решении задачи.

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

Само название языка «С++» связано с операцией языка «++», т.е. прибавление единицы к предыдущему значению. Тем самым подразумевается, что язык С++ является следующей версией языка С. Информация в лекции «13 — Изрядное количество колористики» поможет Вам.

Что такое компилятор и интерпретатор ? Их основные отличия.

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

Интерпретатор – это программа, которая переводит исходный текст программы на языке программирования в машинные команды построчно (пооператорно) и передаёт их на выполнение. Если строка программы выполняется успешно, интерпретатор переходит к следующей строке, переводит её в машинный код и передаёт на выполнение и т.д. до конца программы.

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

Читайте также:
Программа показывает характеристики телефона

При этом компилятор сначала предварительно просматривает исходную программу, выявляет повторяющиеся места (чтобы не переводить их дважды) и синтаксические ошибки – неправильно записанные слова команд и операторов (например, printe вместо print e). Логические ошибки (вроде π = 4,13, а не 3,14) может выявить только сам разработчик программы. Процесс поиска и исправления логических ошибок довольно сложен, он называется отладкой программы и занимает, согласно статистике 60% времени создания работающей программы. Поэтому так высоко ценится мастерство опытного программиста, который может писать качественные и надёжные программы. Язык С++ в настоящее время является самым распространённым в мире языком, большинство программ в России и и за рубежом создаётся именно на нём.

Поделитесь ссылкой:

Рекомендуемые лекции

  • Электронная почта (E-Mail)
  • 1. Введение
  • 5 Анализ пространственных данных
  • 6. Язык HTML
  • 13 — Изрядное количество колористики

Свежие статьи

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

Обзор программы Экранная Студия. Как записать видео с экрана

Обзор программы Экранная Студия. Как записать видео с экрана

Как и где студенту составить резюме?

Как и где студенту составить резюме?

Правила оформления презентации для студентов в 2023 году

Правила оформления презентации для студентов в 2023 году

С Новым 2023 годом!

С Новым 2023 годом!

Как студенту выбрать ноутбук и принтер?

Как студенту выбрать ноутбук и принтер?

Источник: studizba.com

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

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

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

Читайте также:
В какой программе работают турфирмы

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

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

Ассемблер – компилятор, который переводит каждую команду исходной программы в одну машинную команду.

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

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

4.3 Общая схема работы компилятора

Основные функции компилятора:

1) проверка исходной цепочки символов на принадлежность к входному языку;

2) генерация выходной цепочки символов на языке машинных команд или ассемблере.

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

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

Читайте также:
Программа установки обнаружила что компьютер не удовлетворяет требованиям

Данные этапы состоят из более мелких стадий, называемых фазами. Состав фаз и их взаимодействие зависит от конкретной реализации компилятора. Но в том или ином виде в каждом компиляторе выделяются следующие фазы:

1) лексический анализ;

2) синтаксический анализ;

3) семантический анализ;

4) подготовка к генерации кода;

5) генерация кода.

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

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

Общая схема работы компилятора представлена на рисунке 4.3.

Рисунок 4.1– Общая схема работы компилятора

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

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

Разница между: транспайлер, транслятор, компилятор?

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

  • Вопрос задан более трёх лет назад
  • 13938 просмотров

Комментировать
Решения вопроса 1

RiseOfDeath

Диванный эксперт.

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

Трансляция — преобразование исходного кода программы из одного ЯП в другой. Обычно компиляторы (например для C/C++) транслируют исходник в программу на асемблере, и уже потом ее компилируют.

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

Источник: qna.habr.com

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