Мансуров Н. Н., Майлингова О. Л. - Методы формальной спецификации программ (1184226), страница 14
Текст из файла (страница 14)
Текст можно вводить в любое время, например, сразу после созданиянового символа или после того, как созданы все символы.9.5.2.1.1 Создание левого участкаДля создания левого участка нужно выполнить следующие операции:1. Выбрать стартовый символ из палитры символов и поместить его вобласть редактирования.2. Сделайте двойной щелчок мышью по символу действия. Пустой символдействия будет добавлен к стартовому символу.3. Для ввода теста в символ действия воспользуемся контекстнойинформацией по грамматике языка SDL.Выберите команду Grammar Help из меню Windows. Появится окноинформации по грамматике SDL.Рис. 43. Окно информации по грамматике SDL98Список на левой стороне окна описывает несколько «ситуаций»использования текущего символа. Верхний элемент списка – GRAMMAR– описывает полную грамматику для текущего символа.В верхней части на правой стороне окна содержатся ссылки на стандартязыка SDL.
Далее на этой панели приводятся предложения БНФ для всехконструкций, допустимых для данного символа.4. Выберите «ситуацию» установки таймера (set).Теперь на правой стороне окна показана БНФ для установки таймера:SET(Now+Expr,TimeName).Рис. 44. Грамматика для установки таймера5. Для ввода конструкции в текущий символ выберите команду Insert изменю Edit. Более быстрый способ ввода текста в символ – двойной щелчокмышью по названию «ситуации» в списке на левой стороне окна.6. Замените имена нетерминалов Expr и TimerName на конкретныевыражения (1 и T, соответственно).
Для редактирования участка текстаможно использовать окно редактирования текста. Выделите мышьюучасток, подлежащий изменению, и введите новый текст.99Рис. 45. Окно редактирования текстаДля закрытия окна информации по грамматике выберите команду Close вменю File.7. Завершите создание участка, сделав двойной щелчок по символусостояния. Введите текст: Generate.Создание правого участкаДля создания правого участка нужно выполнить следующие операции:1. Скопируйте символ состояния в буфер.
Команды работы с буферомнаходятся в меню Edit или в отдельном меню, всплывающем при нажатииправой кнопки мыши.2. Вставьте копию символа из буфера, выполнив команду Paste. Поместитеновый символ и завершите операцию, нажав левую кнопку мыши.3. Добавьте символ ввода сигнала двойным щелчком мыши. Введите текст:T.4. Добавьте символ посылки сигнала двойным щелчком мыши. Введитетекст: Bump.5. Скопируйте символ действия с текстом SET(NOW + 1, T).6. Сделайте текущим символ посылки сигнала Bump. Нажмите правуюкнопку мыши и выберите команду Insert Paste.
Данная командаодновременно копирует символ из буфера и добавляет его к участку.7. Завершите создание участка, сделав двойной щелчок мышью по символусостояния. Введите текст: -.8. Добавьте текстовый символ и введите определение таймера T.9. Сохраните диаграмму.9.5.3. Редактирование процесса GameУпражнения данного урока помогут вам научиться:- Редактировать параллельные участки- Соединять символы100Создайте диаграмму процесса Game. Окончательный вид диаграммыпроцесса Game приведен на рисунке 34.Рис.
46. Диаграмма процесса GameРедактирование стартового перехода1. Создайте стартовый символ, символ действия и символ состояния Losing.2. Теперь будем добавлять два параллельных символа ввода сигналов.Убедитесь в том, что символ состояния является текущим. Нажмите101клавишу <Shift> и, не отпуская ее, сделайте два двойных щелчка мышьюпо символу ввода сигнала в палитре символов.3. Отпустите клавишу <Shift> и сделайте текущим левый символ вводасигнала.4. Введите имя сигнала Probe и завершите левый участок.5. Выберите правый символ ввода сигнала.
Введите имя сигнала Bump изавершите прямую ветвь правого участка (без дополнительной ветви,связанной с вводом сигнала Probe в состоянии Winning).6. Выберите символ ввода сигнала Probe на левом участке. Выберитекоманду Select Tail из меню Edit. Данная команда отмечает все символыдо конца текущего участка.7. Сделайте копию отмеченного участка и добавьте ее в диаграмму.8. Измените имя сигнала в символе ввода с Lose на Win.9. Измените текст в символе действия на Count := Count+110.Соедините символ состояния Winning с символом ввода сигнала Probe.Для этого выберите символ состояния, «потяните» за «ушко» и, неотпуская кнопки мыши, подведите линию к символу ввода сигнала.Рис.
47. Символ состояния и его «ушко»Рис. 48. Состояние после присоединения новой ветви11.Завершите редактирование диаграммы в соответствии с Рис. 49.102Рис. 49. Оставшиеся части диаграммы9.5.4. Редактирование процесса MainОкончательный вид диаграммы процесса Main приведен на Рис. 50.Рис. 50. Диаграмма процесса Main1039.6. Полный анализ системыУпражнения данного урока помогут вам научиться:- запускать синтаксический и семантический анализ всей системыДля выполнения полного анализа системы нужно выполнить следующиеоперации:1.
Выбрать символ системы в окне Организатора.2. Выбрать команду Analyze в меню Generate.3. Изменить настройки Анализатора, как показано на Рис. 51.Рис. 51. Настройки Анализатора4. Для запуска Анализатора нажмите на кнопку Analyze.1045. После завершения работы Анализаторав окне статуса появитсясообщение “Analyzer done”. Убедитесь в том, что трасса Анализаторане содержит сообщений об ошибках. В конце трассы должен бытьследующий текст:+ Analysis startedConversion of SDL to PR startedConversion to PR completedSyntactic analysis startedSyntactic analysis completedSemantic analysis startedSemantic analysis completed+ Analysis completed9.7.
ЗаключениеВ данной главе были описаны основные приемы работы средактором SDL диаграмм системы SDT. В результате выполненияупражнений данной главы вы должны были научиться следующему:• Запускать Анализатор;• Устанавливать настройки Анализатора;• Работать с окном сообщений Организатора;• Находить и исправлять синтаксические ошибки;• Создавать диаграмму блока• Работать с несколькими диаграммами в редакторе• Создавать диаграмму по существующей копии• Сохранять диаграмму в новом файле105Глава 10.
Выполнение SDL спецификацийПосле того как созданы и проанализированы все диаграммы системы, можноавтоматически сгенерировать исполняемую версию системы и осуществитьее запуск в интерактивном режиме, т.е. непосредственно проанализироватьповедение системы.После выполнения упражнений данного урока вы должны научиться:- создавать исполняемую систему;- запускать Монитор исполняемой системы;- запускать систему из графического интерфейса Монитора;10.1. Создание исполняемой системыДля создания исполняемой системы нужно выполнить следующие операции:1. Выбрать символ системы в окне Организатора2. Выбрать команду Make из меню Generate.
Выполнение команды приведетк появлению диалога настройки функции Make.Рис. 52. Диалог настройки функции Make3.-Установите настройки, как показано на Рис. 52.Analyse & generate code включено.Compile & link включеноGenerate makefile включеноUse standard kernel включено. Убедитесь, что выпадающее меню Usestandard kernel установлено в Simulation (стандартное ядро длявыполнения спецификаций).1064. Завершите выполнение команды, нажав на кнопку Make.5. Проверьте, что при анализе системы не выдано сообщений об ошибках.
Вокне статуса Организатора должно появиться сообщение “Compilerdone”, а в окне Organizer Log нет некаких сообщений об ошибкахмежду строками «Make started» и «Make completed»6. В случае, если были выданы сообщения об ошибках, вызовите сновадиалог настройки функции Make, но нажмите на этот раз кнопку FullMake. Теперь никаких сообщений об ошибках быть не должно.10.2. Запуск спецификации на выполнениеПосле выполнения команды Make исполняемая система находится вфайле с именем demongame_xxx.sct в той директории, откуда былазапущена система SDT (суффикс _xxx определяется конкретной платформойи используемым компилятором). Исполняемая система содержит Монитор,который предоставляет набор команд для наблюдения за выполнениемсистемы и управлением хода выполнения.Исполняемую систему можно запустить непосредственно из команднойстроки.
В этом случае команды Монитора нужно будет вводитьнепосредственно в текстовой форме.В системе SDT имеется также графический интерфейс к Монитору. Запускграфического интерфейса Монитора осуществляется из Организатораследующим образом.1. Выберите команду Simulator UI из дополнительного меню SDL в менюTools.2. Через несколько секунд появитсяокно графического интерфейсаМонитора.107Рис. 53. Окно графического интерфейса МонитораТекстовое окно (правая панель) содержит сообщения Монитора такие, каквведенные команды, результаты команд, сообщения об ошибках. Начальноесообщение указывает, что исполняемая система не запущена.3.
Для запуска исполняемой системы выберите команду Open из меню Fileили нажмите «быструю клавишу» Open.4. В диалоге выбора файла нужно указать файл demongame_xxx.sct.Завершите выполнение команды, нажав на кнопку OK или Open.5. В текстовом окне Монитора должно появиться сообщение:WelcomeDemongametoSDTSIMULATOR.SimulatingsystemПри запуске исполняемой системы происходит создание статическизаданных экземпляров процессов (в нашем случае Main и Demon), однако ихстартовые переходы не выполняются.Монитор готов к выполнению команд (при этом выдается приглашениеCommand: в текстовом окне).10.3. Выполнение переходовПосле выполнения упражнений данного раздела вы должны научитьсяследующему:108-вводить команды Монитора в текстовом виде;определять SDL-символ, который будет исполняться следующим;читать текстовые и графические трассы Монитора;выполнять очередной переход;пользоваться кнопками графического интерфейса Монитора;посылать сигналы из окружения системы.10.3.1.
Установка уровня детальности трассировкиВ этом упражнении мы установим уровень детальности трассы, т.е. объеминформации о ходе исполнения системы, который будет выдаватьсяМонитором. Для установки уровня детальности используется командаМонитора Set-Trace.Будем вводить команды в текстовом виде в поле Command: (подтекстовым окном сообщений Монитора).1. Нажмите мышью в поле ввода команды. Введите команду Set-Trace 6 инажмите клавишу <Return>. Уровень детальности 6 означает полнуюинформацию обо всех действиях, выполняемых на переходах. Введеннаякоманда отображается в окне сообщений монитора. Мониторподтверждает установку нового уровня детальности трассы. Окнотекстовых сообщений Монитора должно выглядеть следующим образом:Welcome to SDT SIMULATOR.
Simulating systemDemongame.Command: set-trace 610.3.1.1.1 Default trace set to 6Command:2. Имеется возможность наблюдать выполнение системы графически, т.е.отображать исполняемые символы непостредственно на SDL диаграммах.По-умолчанию, графическая трассировка выключена. Для включенияграфической трассировки нужно выполнить команду set-gr-trace 1.Значение 1 указывает на то, что Монитор будет каждый раз показыватьсимвол, который будет исполняться следующим.10.3.2.