Алгоритмические языки и ассемблеры относятся к языками символьного кодирования, т.е. к языкам, которые оперируют не машинными кодами, а условными символьными обозначениями, поэтому программы, составленные на этих языках, не могут быть непосредственно выполнены на компьютере. Чтобы такая программа заработала, ее текст нужно преобразовать в машинные коды.
Для этого существуют специальные программы-переводчики (трансляторы). Различают 2 вида трансляторов- компилятор и интерпретатор. Компилятор транслирует программу сразу целиком, и лишь после этого возможно ее выполнение. Интерпретатор — это более простой транслятор, он последовательно транслирует операторы программы и так же по частям ее выполняет. 2.
Источник: Шпаргалки.com. вопросы теста к экзамену по дисциплине «Финансовая информатика». 2016
Источник: knigi.studio
ИИ научили писать код | Copilot от GitHub и OpenAI
Если коротко то компилятор сначала переводит программу на языке программирования в машинный и запускает, а интерпретатор по словам переводит в машинный язык и выполняет
Трансляторы бывают двух типов: компиляторы (compiler) и интерпретаторы (interpreter). Процесс компиляции состоит из двух частей: анализа (analysis) и синтеза (synthesis).
Выборка очередной инструкции |
Анализ инструкции |
Выполнение инструкции |
Компилятор – это транслятор, который исходный текст программы переводит в машинный код. Если в тексте программы нет синтаксических ошибок, то машинный код будет создан. Но это, как правило, не работоспособный код, т.к. в этой программе не хватает подпрограмм стандартных функций, поэтому компилятор выдает промежуточный код, который называется объектным кодом и имеет расширение.obj.
Компилятор преобразует исходный код программы как одно целое, после чего сохраняет полный эквивалент исходного кода в виде исполняемого файла (в случае с ДОС, это com или exe файл).
1)Компилируемые Бейсики (Turbo Basic. )
2) Паскаль, Си и многие другие ЯВУ
Важно! Компилятор, в отличие от интерпретатора не выполняет программу, он ее создает, точнее, он создает исполняемый файл (в машинном коде) этой программы.
Анализирующая часть компилятора разбивает исходную программу на составляющие ее элементы (конструкции языка) и создает промежуточное представление исходной программы. Синтезирующая часть из промежуточного представления создает новую программу, которую компьютер в состоянии понять. Такая программа называется объектной программой.
Объектная программа может в дальнейшем выполняться без перетрансляции. В качестве промежуточного представления обычно используются деревья, в частности, так называемые деревья разбора. Под деревом разбора понимается дерево, каждый узел которого соответствует некоторой операции, а сыновья этого узла – операндам.
Процесс создания компилятора можно свести к решению нескольких задач, которые принято называть фазами компиляции (compilation phases). Фазы компиляции:
Лексический анализ. Входом компилятора служит программа на исходном языке программирования. С точки зрения компилятора это просто последовательность символов. Задача первой фазы компиляции, лексического анализатора (lexical analysis), заключается в разборе входной цепочки и выделении некоторых более «крупных» единиц, лексем, которые удобнее для последующего разбора. Примерами лексем являются основные ключевые слова, идентификаторы, константные значения (числа, строки, логические) и т.п.
На этапе лексического анализа обычно также выполняются такие действия, как удаление комментариев и обработка директив условной компиляции.
Синтаксический анализ. Синтаксический анализатор (syntax analyzer, parser) получает на вход результат работы лексического анализатора и разбирает его в соответствии с некоторой грамматикой. Эта грамматика аналогична грамматике, используемой при описании входного языка. Однако грамматика входного языка обычно не уточняет, какие конструкции следует считать лексемами. Синтаксический анализ является одной из наиболее формализованных и хорошо изученных фаз компиляции.
Видозависимый анализ. Видозависимый анализ (type checking), иногда также называемый семантическим анализом (semantic analysis), обычно заключается в проверке правильности типов данных, используемых в программе. Кроме того, на этом этапе компилятор должен также проверить, соблюдаются ли определенные контекстные условия входного языка. В современных языках программирования одним из примеров контекстных условий может служить обязательность описания переменных: для каждого использующего вхождения идентификатора должно существовать единственное определяющее вхождение.
Оптимизация кода. Основная цель фазы оптимизации (code optimization) заключается в преобразовании промежуточного представления программы в целях повышения эффективности результирующей объектной программы. Отметим, что существует различные критерии эффективности, например, скорость исполнения или объем памяти, требуемый программе. Очевидно, что все преобразования, осуществляемые на фазе оптимизации, должны приводить к программе, эквивалентной исходной.
Генерация кода. Наконец, по оптимизированной версии промежуточного представления генерируется объектная программа. Эту задачу решает фаза генерации кода (code generator). Помимо собственно генерации кода, на этом этапе необходимо решить множество сопутствующих проблем, например:
· распределение памяти, т.е. отображение имен исходной программы в адреса памяти;
· распределение регистров, т.е. определение для каждой точки программы множества переменных, которые должны быть размещены в регистрах;
· выбор такой последовательности записи значений в регистры, которая избавила бы от необходимости частой выгрузки значений из регистров, а затем повторной загрузки.
Интерпретатор последовательно преобразует в машинный код каждую строку исходного кода программы. Этот процесс очень напоминает синхронный перевод речи с одного языка на другой по отдельным предложениям. В отличие от компилятора, интерпретатор сохраняет текущий результат не в виде выполняемого файла, а только в оперативной памяти компьютера.
Как только вы выключите компьютер, версия программы в машинных кодах улетучится. При каждом включении компьютера вам придется вновь запускать программу интерпретатора. Поэтому, этот способ преобразования менее популярен, чем компиляция. Кроме того, для выполнения программы на другом компьютере там также должен быть установлен интерпретатор — ведь без него текст программы является просто набором символов.
Интерпретаторы используются многими языками для разработки Web-страниц, такими как JavaScript. Поскольку Web-страницы просматриваются с помощью компьютеров различного типа, вы не сможете скомпилировать программу (заранее не известен тип компилятора). Вместо этого используется интерпретатор.
1) Command.com — интерпретатор командных файлов ДОС
2) Интерпретируемые Бейсики используемые в бытовых компьютерах («Микроша», «БК»,»Спектрум») и ранних PC
3) Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language — «практический язык для извлечения данных и составления отчётов». С помощью Perl вы, например, можете создать скрипт, который открывает один или несколько файлов, обрабатывает информацию и записывает результаты.
В реальных системах программирования совмещены технологии и компиляции, и интерпретации – p код*. В процессе отладки программа может выполняться по шагам, а результирующий код не обязательно будет машинным — он даже может быть исходным кодом, написанным на другом языке программирования. (Это существенно упрощает процесс трансляции, но требует компилятора для конечного языка). Результирующий код может быть промежуточным машинно-независимым кодом абстрактного процессора, который в различных компьютерных архитектурах станет выполняться с помощью интерпретатора или компилироваться в соответствующий машинный код.
* P — код (Пи- код) — концепция аппаратно-независимого исполняемого кода в программировании, часто его определяют как «Ассемблер для гипотетического процессора»
Байткод, p-код или переносимый код — машиннонезависимый код низкого уровня, исполняемый виртуальной машиной. Некоторые источники называют p-кодом более высокоуровневый, нежели байткод, набор инструкций, оперирующих абстрактными понятиями. Для простоты изложения мы не делаем различий между этими понятиями
Среда исполнения — совокупность программного обеспечения, предоставляющего унифицированный ABI (Application Binary Interface), который могут использовать другие программы для доступа к ресурсам операционной системы
Выбор зависит от того, что Вам требуется.
Если вы хотите писать коммерческие программы для продажи, используйте компилятор, который хорошо защитит исходный код программы, а следовательно и ваши авторские права.
Если вы хотите написать программу, которая будет выполняться на Web-странице, используйте интерпретатор или р-код.
Если вы хотите, чтобы ваша программа выполнялась на различных типах машины, остановите свой выбор на р-коде.
Источник: studopedia.su
Что такое транслятор в информатике?
Трансля́тор — программа или техническое средство, выполняющее трансляцию программы. Трансля́ция програ́ммы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке.
Какие бывают виды трансляторов?
- Адресный. Функциональное устройство, преобразующее виртуальный адрес (Virtual address) в реальный адрес памяти (Memory address).
- Диалоговый. .
- Многопроходной. .
- Обратный. .
- Однопроходной. .
- Оптимизирующий. .
- Синтаксически-ориентированный (синтаксически-управляемый). .
- Тестовый.
Что такое компилятор в информатике?
Компиля́тор – это программа, которая переводит текст, написанный на языке программирования, в набор машинных кодов..
Как работает транслятор?
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков программирования, в бинарный файл программы, состоящей из машинных команд, либо непосредственно выполняет действия программы.
Что такое транслятор и какие типы трансляторов бывают?
Транслятор — обслуживающая программа, преобразующая исходную программу, предоставленную на входном языке программирования, в рабочую программу, представленную на объектном языке. . В настоящее время трансляторы разделяются на три основные группы: ассемблеры, компиляторы и интерпретаторы.
Что такое трансляция какие виды трансляторов вам известны?
Трансля́тор — программа или техническое средство, выполняющее трансляцию программы. Трансля́ция програ́ммы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке.
Что такое компиляция простыми словами?
Компиляция (программирование) — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера), выполняемая компилятором.
Что означает слово компиляция?
компилировать; составление какого-либо текста, произведения путём использования чужих текстов, трудов без самостоятельной обработки источников и без ссылок на авторов ◆ Удалось сделать удачную компиляцию многих источников и добавить немало своих наблюдений.
Что такое компилятор и транслятор?
Транслятор (англ. translator — переводчик) — это программа-переводчик. . Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Какая часть компилятора осуществляет чтение входной цепочки символов и их группировку в элементарные конструкции называемые лексемами?
Лексический анализатор (известен также как сканер) осуществляет чтение входной цепочки символов и их группировку в элементарные конструкции, называемые лексемами.
Чем отличается программа интерпретатор от программы транслятора?
Компилятор – это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объектную программу на языке машинных команд или языке ассемблера. . Интерпретатор – это программа, которая воспринимает входную программу на исходном языке и выполняет ее.
Что такое транскрипция и трансляция в биологии?
Транскрипция — синтез РНК по матрице ДНК. У эукариот транскрипция происходит в ядре, а также в митохондриях и пластидах (как вы помните, у этих органелл есть собственный геном). . Трансляция — процесс синтеза белка на рибосомах, который происходит в цитоплазме клеток, а у эукариот — также в митохондриях и хлоропластах.
Что участвует в трансляции?
В инициации трансляции участвуют: рибосома, аминоацилированная и формилированная тРНК (fMet-tRNAf Met ), мРНК и три белковых инициирующих фактора IF1, IF2 и IF3. Бактериальная 70S рибосома состоит из большой 50S и малой 30S субъединицы.
Что такое интерпретация в программировании?
Интерпрета́ция — построчный анализ, обработка и выполнение исходного кода программы или запроса (в отличие от компиляции, где весь текст программы, перед запуском, анализируется и транслируется в машинный или байт-код, без её выполнения).
Источник: fcessentuki.ru