Преобразование всей программы представленной на одном из языков программирования в машинные коды

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

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

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

2.1. Языки программирования, трансляторы

Интерпретируемые программы, для которых, как правило, не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями».

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

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

В процессе отладки программы выделяются этапы:

1. трансляция исходного текста программы;

2. компоновка программы;

3. выполнение программы с целью определения логических ошибок;

4. тестирование программы

1. Трансляция. Компиляция. Интерпретация

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

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

Пишу программу в машинных кодах

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

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

Трансляторы подразделяют на:

· Адресный. Функциональное устройство, преобразующее виртуальный адрес в реальный адрес

Читайте также:
Программа определение породы собак

· Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени.

· Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.

· Обратный. То же, что детранслятор (декомпилятор, дизассемблер).

· Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.

· Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.

· Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.

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

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

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

· Пакетная. Компиляция нескольких исходных модулей в одном пункте задания.

· Построчная. То же, что и интерпретация.

· Условная. Компиляция, при которой транслируемый текст зависит от условий, заданных в исходной программе. Так, в зависимости от значения некоторой константы, можно включать или выключать трансляцию части текста программы.

Рисунок 1. Компиляция размеченного документа

Интерпретация — процесс непосредственного покомандного выполнения программы без предварительной компиляции, «на лету»; в большинстве случаев интерпретация намного медленнее работы уже скомпилированной программы, но не требует затрат на компиляцию, что в случае небольших программ может повышать общую производительность.

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

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

Алгоритм работы простого интерпретатора

1. прочитать инструкцию;

2. проанализировать инструкцию и определить соответствующие действия;

3. выполнить соответствующие действия;

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

Рисунок 2. Схема интерпретации текста Ю. Лотмана

Линкование (компоновка) — это процесс, при котором все «недокомпилированные» части программы доводятся до конца и связываются между собой в исполняемый файл (или файлы) формата, понятного данной операционной системе. В итоге, мы получаем исполняемую программу.

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

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

Читайте также:
Что такое портативная программа

· Определённые или экспортируемые имена — функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям

· Неопределённые или импортируемые имена — функции и переменные, на которые ссылается модуль, но не определяет их внутри себя

Работа компоновщика заключается в том, чтобы в каждом модуле разрешить ссылки на неопределённые имена. Для каждого импортируемого имени находится его определение в других модулях, упоминание имени заменяется на его адрес.

Рисунок 3. Наглядная схема линкования

Существует два способа создания линкования:

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

Информатика. Тест с ответами #99

Поможем успешно пройти тест. Знакомы с особенностями сдачи тестов онлайн в Системах дистанционного обучения (СДО) более 50 ВУЗов. При необходимости проходим систему идентификации, прокторинга, а также можем подключиться к вашему компьютеру удаленно, если ваш вуз требует видеофиксацию во время тестирования.

Закажите решение теста для вашего вуза за 470 рублей прямо сейчас. Решим в течение дня.

Адрес ячейки в электронной таблице определяется:
номером листа и именем столбца
именем, присваиваемым пользователем
номером листа и номером строки
именем столбца и номером строки

Операционные системы MacOS используются преимущественно на компьютерах, выпускаемых фирмой …
HP
Apple
Acer
IBM

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

Антивирусные программы-фаги …
контролируют все запросы к операционной системе с целью выявления «подозрительных»
позволяют определять целостность данных и программ с помощью проверки контрольных сумм
предназначены для уничтожения вируса после его распознавания
эффективны только в отношении известных вирусов

Десятичное число 2 в двоичной системе счисления записывается как…
01
00
11
10

Сильные и слабые стороны, возможности и угрозы предприятия, – рассматривает анализ:
1. SWUT
2. SWOT
3. SLOT
4. SNUT

Объект “форма” в СУБД MS Access предназначен для …
отбора из таблиц данных, удовлетворяющих некоторым условиям
хранения сведений о группе однородных объектов
создания документов, предназначенных для печати
отображения, ввода и редактирования данных

Задачи, решаемые Project Expert:
1) разработать детальный финансовый план
2) разработать план развития предприятия
3) проиграть различные сценарии развития предприятия
4) сформировать стандартные финансовые документы

Инкапсуляция в объектно-ориентированном программировании означает возможность – …
определение интерфейса (спецификации) методов и их реализации
реализации соответствия «один модуль-один объект»
создания специальных программ, реализующих изменение состояния объекта
заключения в отдельный модуль процедур работы с объектом

Преобразование всей программы, представленной на одном из языков программирования, в машинные коды называется …
генерацией кода
интерпретацией
компоновкой
компиляцией

Сетевая база данных предполагает такую организацию данных, при которой:
1) помимо вертикальных иерархических связей (между данными) существуют и горизонтальные
2) связи между данными отражаются в виде совокупности нескольких таблиц
3) связи между данными отражаются в виде таблицы
4) между ними имеются исключительно вертикальные связи
5) связи между данными описываются в виде дерева

Читайте также:
Программа рассчитать стороны треугольника

Среди подсистем, обеспечивающих работу информационной системы, содержатся …
организационная
техническая
консалтинговая
транспортно-экспедиционная

Производительность СУБД оценивается – …
максимальным числом параллельных обращений к данным в многопользовательском режиме
скоростью проверки орфографии текста
временем генерации отчета
скоростью создания индексов и выполнения таких массовых операций, как обновление, вставка и удаление данных

Прикладные программы называют …
драйверами
браузерами
утилитами
приложениями

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

Алгоритмизация и программирование

Язык программирования АДА, который, в частности, был использован при разработке комплекса пилотажно-навигационного оборудования для российского самолета-амфибии Бе-200, был создан в _________ году.

Вопрос 4

Операторы присваивания в языках программирования

задают значения переменных

меняют значения констант

вводят значения переменных

определяют внутреннее представление данных в памяти компьютера

выводят значения переменных

Вопрос 5

Выражению соответствует следующее арифметическое выражение на языке программирования (операция возведения в степень обозначена символом «^»)

ABS(x^2-x^3)-(7*x)/(x^3-15*x)

ABS(x^2-x^3)-(7*x)/x^3-15*x

ABS(x 2 -x 3 )-(7*x)/(x 3 -15*x)

ABS(x^2-x^3)-(7x)/(x^3-15x)

(x^2-x^3)-7*x/x^3-15*x

Понятие алгоритма. Блок-схема алгоритма

Вопрос 1

Полуформализованное описание алгоритма на условном алгоритмическом языке, включающее в себя элементы языка программирования, фразы естественного языка и общепринятые математические обозначения, является

графической формой представления алгоритма

словесной формой представления алгоритма

программной формой представления алгоритма

Вопрос 2

Алгоритм задан схемой:

С помощью операции a mod b вычисляют остаток от деления числа aна b, операция a div b позволяет определить целую часть от деления числа ана b.
В результате выполнения алгоритма при исходном значении n=5874 значение переменной s будет равно

Вопрос 3

Алгоритм задан схемой

В результате выполнения алгоритма при исходных данных
x1 = -3, y1 = -2,

x2 = 9, y2 = -2,

x3 = 9, y3 = 3

значение переменной P будет равно

Вопрос 4

Алгоритм задан схемой

В результате выполнения алгоритма при исходных данных x= -25, y = 1 значение переменной zбудет равно

Вопрос 5

Алгоритм задан схемой

В результате выполнения алгоритма при исходных данных a = 2, n = 8 значение переменной p будет равно

Этапы решения задач на компьютерах. Трансляция, компиляция, интепретация

Вопрос 1

При решении задачи на компьютере на этапе программирования не выполняется

выбор языка программирования

уточнение способов организации данных

запись алгоритма на языке программирования

Вопрос 2

При решении задачи на компьютере на этапе отладки программы не выполняется

запись алгоритма на языке программирования

трансляция исходного текста программы

Вопрос 3

Компиляция и интерпретация представляют собой

два принципиально различных метода трансляции

два синонима для обозначения процесса перевода программного кода с языка программирования высокого уровня на машинный язык и создания исполняемого файла

два синонима для обозначения процесса построчного анализа и выполнения программного кода

два этапа загрузки операционной системы

два этапа программирования

Вопрос 4

Верным является утверждение, что

понятие «транслятор» является более общим по сравнению с понятием «компилятор»

понятия «транслятор» и «компилятор» являются синонимами

понятие «компилятор» является более общим по сравнению с понятием «транслятор»

понятия «транслятор» и «компилятор» независимы друг от друга

понятия «транслятор» и «компилятор» зависимы друг от друга

Вопрос 5

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

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

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