Программа имитирующая работу какого либо объекта

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

— вывод номера и входных данных теста;

— вызов тестируемого модуля с передачей ему входных данных теста в виде параметров и/или глобальных переменных;

— вывод полученных результатов (или сообщения об итогах их сравнения с эталонным ответом).

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

— пустая подпрограмма, состоящая из заголовка функции и пустого блока (полное отсутствие вызываемой функции, даже если она не нужна для работы тестируемого модуля, недопустимо из-за ошибок трансляции);

— пустая подпрограмма, выводящая сообщение о том, что она отработала, что позволяет проследить последовательность вызовов модулей;

Книжный магазин на Java

— подпрограмма, возвращающая всегда один и тот же постоянный результат (иногда этого достаточно для проверки правильности функционирования отлаживаемого модуля);

— подпрограмма, возвращающая заранее заготовленный результат, вводимый из файла или хранящийся в массиве;

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

Возможно использование какой-либо комбинации приведенных вариантов.

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

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

Далее приведены драйверы и имитаторы для разработанного плана отладки и тестов измененного компилятора С0. Для упрощения драйверов с помощью директивы #include в них вставляются описания глобальных переменных, вынесенные в файл glb.c из текста транслятора (строки 47 -109).

Из модульной структура компилятора С0 (см. приложение 2) видно, что для автономной отладки функции chleks требуется драйвер и имитаторы вызываемых из нее подпрограмм chsim и oshibka (рис. 4).

Драйвер для автономной отладки функции chleks разработан на основе фрагментов функции main компилятора С0. Драйвер читает файл p.c0 с помощью подпрограммы chleks и выводит в файл p.asm полученную последовательность лексем в числовом виде.

Читайте также:
Лучшие программы для лотерей

leksim[‘+’]=plus; leksim[‘-‘]=minus; leksim[‘*’]=umn;

leksim[‘/’]=del; leksim[‘%’]=ost; leksim[‘=’]=prisv;

vhstr[0]=’ ‘; vhstr[1]=’’; usim=vhstr;

fvh=fopen(«p.c0″,»r»); /* откpыть входной файл */

fvih=fopen(«p.asm»,»w»); /* откpыть выходной файл */

Power Automate Desktop — полная автоматизация работы на компьютере (без программирования)

if ((fvh==NULL) || (fvih==NULL))

printf(«Файлы не откpылись»);

Имитатор чтения символа — это упрощенная функция chsim, из которой удалены операторы, вставляющие строки исходного текста в файл p.asm:

/* Имитатор чтения символа chsim */

Поскольку разработанный тест не содержит ошибок, при его чтении функция oshibka не должна вызываться, и ее имитатор можно было бы сделать пустым. Тем не менее, полезно на всякий случай вставить в имитатор вывод упрощенного сообщения об ошибке, чтобы зафиксировать случаи возможного «обнаружения» несуществующих «ошибок» входного текста из-за ошибок в отлаживаемой программе chleks:

В соответствии с модульной структурой компилятора С0 для тестирования модулей трансляции выражения: virag, operac, vitsk, zopreg, gen_kom и adrper необходим драйвер и имитаторы вызываемых из этих модулей функций: chleks, test, vkluch, pozic и oshibka (рис. 5).

Разработанный для отладки входной текст представляет собой последовательность выражений, заканчивающихся точкой с запятой, и поэтому драйвер циклически обращается к модулю virag, пока не кончится файл p.c0. Перед каждым обращением читается первая лексема очередного выражения.

tabim[1].imja=»x»; tabim[1].vidob=1; /* имя x глобальное */

tabim[2].smesch=2; tabim[2].vidob=1; /* имя y локальное */

fvh=fopen(«p.c0″,»r»); /* откpыть входной файл */

fvih=fopen(«p.asm»,»w»); /* откpыть выходной файл */

if ((fvh==NULL) || (fvih==NULL))

printf(«Файлы не откpылись»);

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

Разработанные тесты: ++x; y++; -x—; —y; x=-y+++5; x=++y+5; y=—x-5; x=y—5; задаются в файле p.asm в виде числовых значений лексем, разделенных пробелами и/или символами новой строки: 18 1 17 1 18 17 4 1 19 17 19 1 17 1 20 4 1 18 3 2 17 1 20 18 1 3 2 17 1 20 19 1 4 2 17 1 20 1 19 4 2 17.

При этом вид ожидаемого объектного кода определен из условия, что x является глобальной переменной, а y — локальной переменной со смещением 2.

Читайте также:
Системные требования для графических программ

Драйвер virag моделирует соответствующую таблицу имен, содержащую под индексом 1 глобальную переменную x, а под индексом 2 — локальную переменную y, имеющую смещение 2:

tabim[1].imja=»x»; tabim[1].vidob=1; /* имя x глобальное */

tabim[2].smesch=2; tabim[2].vidob=1; /* имя y локальное */

При обработке разработанного тестового текста обращения к имитатору pozic для поиска позиции (индекса) очередного имени будут происходить в том порядке, в котором в этом тексте расположены имена x и y. Под видом «найденных» индексов имен x и y имитатор pozic будет выдавать размещенные в таком же порядке числа из глобального или статического массива zi.

/* позиция имени id в таблице tabim */

int nt = 0; /* 1 2 3 4 5 6 7 8 9 10 11 12 N имени */

/* В тесте x y x y x y y x x y x y */

pozic(int tabl) /* вид таблицы: kolglb/kolim */

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

/* включение имени id в таблицу имен */

fprintf(fvih,»n vkluch n»); /* если по ошибке вызовут */

Имитатор oshibka можно использовать такой же, как для отладки chleks. Имитатор test оставлен пустым:

/* Имитатор test: проверка лексемы, */

/* сообщение об ошибке и ее нейтрализация */

test(long s1, long s2, long n)

/* s1 — множество допустимых лексем (логич. шкала) */

/* s2 — множество дополнительных лексем для пропуска*/

/* n — номер ошибки */

Порядок выполнения работы

1. Разработать отладочные средства (тесты, драйверы, имитаторы, отладочные подпрограммы), необходимые для автономной отладки новых и измененных подпрограмм (модулей) транслятора, разработанных в лабораторной работе 3, и провести их автономную отладку. План отладки (по одному модулю либо группами модулей) предварительно согласовать с преподавателем.

2. Провести комплексную отладку измененного транслятора.

3. Составить отчет, включающий план отладки, отладочные средства и результаты отладки.

5. Сдать работу, ответив на вопросы преподавателя по представленному отчету.

Контрольные вопросы и упражнения

1. Какие преимущества даёт автономная отладка программного модуля по сравнению с его отладкой в комплексе со всеми модулями?

Читайте также:
Не включается программа стиральной машины

2. Какие недостатки имеет автономная отладка программного модуля по сравнению с его отладкой в комплексе со всеми модулями?

3. Какие отладочные средства необходимо разработать для автономной отладки одного программного модуля (конкретной подпрограммы компилятора С0)?

4. Какие отладочные средства необходимо разработать для автономной отладки группы программных модулей (конкретного множества подпрограмм компилятора С0)?

5. В каких случаях для автономной отладки программного модуля не требуется драйвер?

6. В каких случаях для автономной отладки программного модуля не требуются имитаторы вызываемых модулей?

7. Что необходимо разработать раньше для автономной отладки программного модуля: тесты или драйвер?

8. Что необходимо разработать раньше для автономной отладки программного модуля: тесты или имитаторы вызываемых модулей?

9. Что необходимо разработать раньше для автономной отладки программного модуля: драйвер или имитаторы вызываемых модулей?

Дата добавления: 2019-02-12 ; просмотров: 325 ; Мы поможем в написании вашей работы!

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

Кроссворды по темам из курса информатики

6. Программа, имитирующая работу какого-либо объекта. 7.Оптическое устройство ввода изображения.

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

9. Человек, профессионально занимающийся математикой.

10. Дисплей, используемый для контроля работы системы.

По вертикали:

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

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

3. Устройство для работы с магнитными дисками (считывания и записи информации). 4.Внешняя несменная память компьютера.

5. Совокупность четко определенных правил для решения задачи за конечное число шагов.

Источник: xn--j1ahfl.xn--p1ai

Специальный программный комплекс, позволяющий имитировать деятельность какого-либо сложного объекта, – это _ модель

Как быстро выучить стихотворение наизусть? Запоминание стихов является стандартным заданием во многих школах.

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте.

Как быстро и эффективно исправить почерк? Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

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

  • Обратная связь
  • Правила сайта

Источник: www.soloby.ru

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