русс | укр

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

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Взаимодействие с человеком-оператором


Дата добавления: 2015-06-12; просмотров: 506; Нарушение авторских прав


Интерпретатор может выполняться в автоматическом или пошаговом режиме. В автоматическом режиме Интерпретатор моделирует выполнение команд программы без остановок до команды типа HALT или до точки останова. В точке останова оператор может вводить команды, управляющие действиями Интерпретатора и выбрать режим продолжения выполнения. В пошаговом режиме Интерпретатор после выполнения каждой команды программы останавливается и предоставляет оператору возможность вводить команды управления. Командами управления работой Интерпретатора могут быть:

u команды на отображение/изменение состояния/содержимого компонентов модели;

u команды задания точек останова;

u команды моделирования прерываний;

u команды установки режима выполнения;

u команда окончания работы.

Отображаться должны состояния и значения всех составляющих программной модели ВС: регистров (РОН, счетчика адреса, состояния), заданных участков памяти и их признаков, счетчика модельного времени, программы поступления прерываний и т.д. Отображаемые значения также должны быть доступны для изменений. Отметим, что для интерактивного отображения/изменения должны быть доступны также байты признаков памяти. Изменение содержимого регистра-счетчика адреса равносильно передачи управления в программе.

Точки останова могут задаваться в исходном для Интерпретатора файле и вводиться/изменяться в ходе интерактивной отладки. Могут быть предусмотрены остановы при:

u передаче управления по заданному адресу;

u чтении данных по заданному адресу;

u записи данных по заданному адресу.

Связь отладки с исходным текстом. Такая связь безусловно удобно и может быть осуществлена относительно несложно, если выход 1-го прохода Кросс-Ассемблера передается на вход Интерпретатора. Выход 1-го прохода связывает операторы исходного текста с адресами памяти. Таким образом, по значению счетчика адреса в каждый момент выполнения программы можно найти в выходе 1-го прохода соответствующий оператор исходного текста. Если на вход Интерпретатора подается также сформированная 1-м проходом таблица символов, то есть возможность обращаться к переменным программы и к точкам передачи управления по символьным именам.



Можно ли обеспечить изменение прямо в ходе отладки исходного текста? Схема решения сводится к представленной на рисунке. В схеме остается только 1-й проход Кросс-Ассемблера. Выход его — исходный текст с разметкой адресов и таблица символов является основным входом Интерпретатора. Необходимость во 2-м проходе Кросс-Ассемблера отпадает. В начале выполнения Интерпретатор должен построить модель памяти, в которой он размещает, однако, только данные программы, но не команды. При работе Интерпретатор повторяет многие действия 2-го прохода Кросс-Ассемблера, читает не коды, а исходные тексты и распознает команду не по коду операции, а по мнемонике, и интерпретирует операнды не по кодам, а по исходным текстам. Изменения в исходном тексте оператора программы должны автоматически реплицироваться в соответствующем операторе (только в одном операторе!) результата 1-го прохода, и тогда при следующем выполнении этого оператора будет моделироваться уже выполнение новой команды. Однако, поскольку в результате 1-го прохода каждый оператор уже привязывается к определенному адресу, возможность изменения должна ограничиваться тем, что длина новой команды обязательно равна длине старой команды. Более сложные изменения потребуют повторного выполнения 1-го прохода Кросс-Ассемблера.

 

Итоговая схема алгоритма функционирования Интерпретатора сводится к следующей:

 

 

F Блок1:Запуск Интерпретатора.

F Блок2:Открытие исходных файлов — результатов работы Кросс-Ассемблера и файлов с управляющей информацией (описание файлов — внешних устройств, программа поступления прерываний, описание фрагментов памяти и отдельных ячеек и т.п.).

F Блок3:Считывание управляющей информации.

F Блок4:Установка начальных значений для компонентов модели (содержимое памяти, регистры, счетчик модельного времени).

F Блок5:Интерактивное задание/корректировка управляющей информации (режим выполнения, точки останова и т.п.).

F Блок6:Автоматический режим?

F Блок7:Если установлен пошаговый (не автоматический) режим выполнения, выполняется ввод и обработка команд оператора в интерактивном режиме. Эта обработка может заканчиваться либо продолжением выполнения интерпретатора в пошаговом или автоматическом режиме, либо завершением его работы по команде оператора.

F Блок8:Если установлен автоматический режим выполнения, но текущее значение регистра — счетчика адреса совпадает с одной из заданных точек останова, также выполняется ввод и обработка команд оператора в интерактивном режиме.

F Блок9:Проверяется счетчик модельного времени сравнивается с временем поступления первого прерывания в списке прерываний.

F Блок10:Если счетчик модельного времени больше или равен времени поступления первого прерывания в списке, выполняется сохранение текущего состояния и занесение в регистр-счетчик адреса секции обработки прерывания данного типа.

F Блок11:Первый элемент удаляется их списка прерываний и происходит возврат на начало итерации обработки команды.

F Блок12:Если прерывание не поступило, выбирается первый байт команды (при отладке по объектному модулю) или ее мнемоника (при отладке по исходному тексту).

F Блок13:Код операции или мнемоника команды ищется в таблице команд.

F Блок14:При неуспешном поиске Интерпретатор заканчивается с сообщением об ошибке.

F Блок15:Выбор операндов из кода команды или из текста оператора.

F Блок16:Проверка правильности кодирования операндов, проверка корректности обращения к памяти.

F Блок17:При ошибках в операндах или в обращении к памяти Интерпретатор заканчивается с сообщением об ошибке.

 

F Блок18:Задан ли для адреса операнда останов при обращении? Если да — возврат на выполнение команд в интерактивном режиме.

F Блок19:Интерпретация команды и запись результата

F Блок20:Вычисление и занесение в регистр-счетчик адреса следующей команды.

F Блок21:Проверка, является ли адрес в регистре-счетчике адреса адресом 1-го байта команды

F Блок22:Если это не так, Интерпретатор заканчивается с сообщением об ошибке.

F Блок23:Модификация счетчика модельного времени и переход на выполнение следующей команды.

Окончание работы Интерпретатора может происходить:

u при обнаружении ошибки в программе;

u при вводе оператором интерактивной команды завершения работы;

u при обработке команды останова (HALT) в программе.

 

Лекция 18.
Ошибки программирования



<== предыдущая лекция | следующая лекция ==>
Ввод-вывод | Классификация ошибок программирования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.057 сек.