Транслятор представляет собой программу, на основе которой компьютер преобразует вводимые в него программы на машинный язык, поскольку он может выполнять программы, записанные только на языке его процессора, и алгоритмы, заданные на другом языке, должны быть перед их выполнением переведены на машинный язык.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. Результат работы компилятора — бинарный исполняемый файл.
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни исходный текст программы, ни компилятор более не нужны для исполнения программы. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы. То есть исходный файл является непосредственно исполняемым.
Как в Word убрать красные и зеленые подчеркивания? Скрываем орфографические и грамматические ошибки
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, С++ обычно используется для решения довольно сложных задач, в которых важна скорость работы программ, поэтому данный язык реализуется с помощью компилятора.
Для достижения большей скорости работы программ на интерпретируемых языках программирования может использоваться трансляция в промежуточный байт-код. Языками, позволяющую данную хитрость являются Java, Python и некоторые другие языки программирования.
АЛГОРИТМ РАБОТЫ ПРОСТОГО ИНТЕРПРЕТАТОРА:
- прочитать инструкцию;
- проанализировать инструкцию и определить соответствующие действия;
- выполнить соответствующие действия;
- если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2
Источник: gist.github.com
Трансляторы и интерпретаторы. Назначение и отличие
Программа, написанная на языке высокого уровня, абсолютно непонятна ЭВМ как исполнителю. Ее необходимо перевести в команды процессора или выполнять с помощью специальной программы. Общее классообразующее название для таких программ – трансляторы.
Транслятор (англ. translator – переводчик) – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы бывают двух принципиально разных видов – интерпретаторы и компиляторы (хотя ряд трансляторов сочетает оба этих подхода). В одной и той же ОС могут быть реализованы как компиляторы, так и интерпретаторы одного и того же языка программирования.
Урок 11 Строки и их методы Python
Интерпретатор (англ. interpreter – истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. Это диалоговые программы, которые позволяют программисту работать с текстами его программ: редактировать, запускать на выполнение целиком или по отдельным операторам, просматривать значения переменных. Интерпретатор полностью хранит в ОЗУ текст программы, а при выполнении каждый раз переводит его буквально по букве. Поскольку задача анализа текста довольно сложна, интерпретаторы выполняют программу чрезвычайно медленно (основное время тратится не на исполнение, а на перевод). Кроме того, объем интерпретируемой программы ограничен объемом свободного ОЗУ, которым интерпретатор располагает.
Компилятор (англ. compiler – составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. Компиляторы переводят программу один раз и позволяют получить в конечном итоге загрузочный модуль – программу в машинных кодах, которую можно хранить на диске и запускать на выполнение в любой нужный момент (уже без наличия самого транслятора, а иногда и даже без операционной системы).
Скомпилированная программа выполняется на порядок быстрее, чем обрабатываемая интерпретатором, но сам процесс компиляции очень длителен, поэтому отлаживать программу, имея только компилятор, трудно и долго. Трудно потому, что нельзя исполнять программу по шагам, смотреть значения переменных и т.п. После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске.
studopedia.org — Студопедия.Орг — 2014-2022 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с) .
Источник: studopedia.org
Транслятор, компилятор, интерпретатор
С помощью языка программирования создаётся не готовая программа, а только её текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программы компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы).
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора.
С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.
Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.
Интерпретатор берёт очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представление или даже машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдёт к следующему. При этом если один и тот же оператор будет выполняться в программе многократно, интерпретатор будет выполнять его так как, как будто встретил впервые. Вследствие этого программы, в которых требуется осуществить большой объём вычислений, будут выполняться медленно. Кроме того, для выполнения программы на другом компьютере там тоже должен стоять интерпретатор – ведь без него текст является просто набором символов.
По-другому можно сказать, что интерпретатор моделирует некоторую вычислительную виртуальную машину, для которой базовыми инструкциями служат не элементарные команды процессора, а операторы языка программирования.
Компиляторы полностью обрабатывают весь текст программы (он иногда называется исходный код) Они просматривают его в поиске синтаксических ошибок (иногда несколько раз), производят определенный смысловой анализ, а затем автоматически переводят (транслируют) на машинный язык — генерируют машинный код. Нередко при этом выполняется оптимизация с помощью набора методов позволяющих повысить быстродействие программы (например, с помощью инструкций, ориентированных на конкретный процессор, путём исключения ненужных команд, промежуточных вычислений и т.д.). В результате законченная программа получается законченной и эффективной, работает в сотни раз быстрее программы, выполняемой с помощью интерпретатора, может быть перенесена на другие компьютеры с процессором, поддерживающим соответствующий машинный код.
Недостаток компилятора – трудоёмкость трансляции языков программирования, ориентированных на обработку данных сложных структур, часто заранее неизвестной или динамически меняющейся во время работы программы. Тогда в машинный код приходиться вставлять множество дополнительных проверок, анализировать наличие ресурсов операционной системы, динамически их захватывать и освобождать, формировать и обрабатывать в памяти компьютера сложные объекты, что на уровне жестко заданных машинных инструкций осуществить довольно трудно, а для задачи почти невозможно.
С помощью интерпретатора, наоборот, допустимо в любой момент остановить программу, исследовать содержимое памяти, организовать диалог с пользователем, выполнить сколь угодно сложные преобразования и при этом постоянно контролировать состояние окружающей программно — аппаратной среды, благодаря чему достигается высокая надёжность работы. Интерпретатор при выполнении каждого оператора проверяет множество характеристик операционной системы и при необходимости максимально подробно информирует разработчика о возникающих проблемах. Кроме того, интерпретатор очень удобен для использования в качестве инструмента изучения программирования, так как позволяет понять принципы работы любого отдельного оператора языка.
В реальных системах программирования перемешаны технологии и компиляции и интерпретации. В процессе отладки программа может выполняться по шагам, а результирующий код не обязательно будет машинным – он даже может быть исходным кодом, написанном на другом языке программирования (это существенно упрощает процесс трансляции, но требует компилятора для конкретного языка), или промежуточным машинно-независимым кодом абстрактного процессора, который в различных машинных архитектурах станет выполнять с помощью интерпретатора или компилировать в соответствующий машинный код.
Источник: 5rik.ru
Алгоритмические языки высокого уровня. Назначение и способы организации. Интерпретаторы, трансляторы и компиляторы.
Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
- машинные;
- машинно-оpиентиpованные (ассемблеpы);
- машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки— это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровняимитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
Языки высокого уровня делятся на:
- процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
- логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
- объектно-ориентированные (ObjectPascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
Алгоритмические языки это проблемно-ориентированные языки, т.е. языки более высокого уровня (они абстрагированы от машинных команд конкретных ЭВМ). Они содержат более сложные операторы, чем элементарные машинные команды и позволяют упростить и ускорить процесс составления программ по сравнению с Ассемблером. Программы, написанные на этих языках, транслируются в эквивалентные программы с машинными кодами. Программа транслятор преобразует каждый оператор в эквивалентную последовательность машинных команд.
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. |
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Объектно-ориентированный язык алгоритмический язык vba .Назначение и основные возможности.
VisualBasicforApplications (VBA, VisualBasic для приложений) — немного упрощённая реализация языка программирования VisualBasic, встроенная в линейку продуктов MicrosoftOffice (включая версии для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic.
VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к VisualBasic. VBA, будучи языком, построенным на COM, позволяет использовать все доступные в операционной системе COM объекты и компоненты ActiveX. По сути, возможно создание приложения на основе Microsoft Word VBA, использующего только средства Corel Draw.
В будущем Microsoft планирует заменить VBA на VisualStudioToolsforApplications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET.
Достоинства и недостатки
К достоинствам языка можно отнести сравнительную лёгкость освоения, благодаря которой приложения могут создавать даже пользователи, не программирующие профессионально. К особенностям VBA можно отнести выполнение скрипта именно в среде офисных приложений.
Недостатком являются проблемы с обратной совместимостью разных версий. Эти проблемы в основном связаны только с тем, что код программы обращается к функциональным возможностям, появившимся в новый версии программного продукта, которые отсутствуют в старой. Также к недостаткам часто относят и слишком высокую открытость кода для случайного изменения, тем не менее, многие программные продукты (например, MicrosoftOffice и IBM LotusSymphony) позволяют пользователю использовать шифрование исходного кода и установку пароля на его просмотр.
VBA — Visual Basic for Application. Это язык разработанный Microsoft для надстройки приложений Office. Приложения разработанные на VBA не могут функционировать вне Office. VBA предназначен для добавления недостающего функционала к приложениям Office. Так, например, в Excel с помощью VBA вы можете создать свои функции которых нет в Excel.
VBA из-за своей простоты и возможностей стал настолько популярен, что многие другие производители стали приобретать лицензии у Microsoft и встраивать VBA в свои приложения (напримерCorelDraw). Следует отметить, что VBA является языком семейства VisualBasic что делает его использование простым и популярным. Если вы знаете VBA, вы можете писать скрипты для HTML страниц на VBS и собственно создавать динамические страницы ASP
Это средство программирования, практически ничем не отличающееся от классического VisualBasic, которое предназначено для написания макросов и других прикладных программ для конкретных приложений. Наибольшую популярность получил благодаря своему использованию в пакете MicrosoftOffice. Широкое распространение VisualBasicforApplications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов.
Особенности:
§ Оператор — деление нацело, любая дробная часть отсекается.
§ Перед выполнением операции ab a и b округляются до целого.
Дата добавления: 2018-08-06 ; просмотров: 1432 ; Мы поможем в написании вашей работы!
Источник: studopedia.net