- •Языки моделирования мсэ
- •Содержание:
- •Синтаксис и семантика в sdl. Ознакомление с бнф и с синтаксическими графами
- •Оборудование
- •7 Теоретическая часть
- •7.1 Назначение языка спецификаций и описаний sdl
- •7.2 Грамматика языка sdl
- •7.3 Синтаксис языка sdl
- •7.4 Нормальная и расширенная формы Бэкуса-Наура
- •8 Практическая часть
- •Составление диаграммы блока
- •Оборудование
- •7 Теоретическая часть
- •7.1 Описание структуры блока sdl
- •Синтаксис
- •7.3 Диаграмма блока
- •7.4 Комментарии и расширение текста
- •8 Практическая часть
- •Составление диаграммы системы
- •Оборудование
- •7 Теоретическая часть
- •7.1 Описание структуры системы sdl
- •Синтаксис
- •Семантика
- •Синтаксис
- •7.3 Диаграмма системы
- •7.4 Комментарии и расширение текста
- •8 Практическая часть
- •Составление диаграммы процесса
- •Оборудование
- •7 Теоретическая часть
- •7.1 Описание динамического поведения системы sdl
- •7.1.1 Процесс
- •7.1.2 Создание и уничтожение процесса
- •8 Практическая часть
- •Составление диаграммы процедуры
- •Оборудование
- •7.1.2 Вызов процедуры
- •7.1.3 Диаграмма процедуры
- •8 Практическая часть
- •Составление матрицы состояние/сигнал
- •Оборудование
- •7.1.2 Матрицы состояний/сигналов
- •8 Практическая часть
- •Ознакомление с языком mml
- •Оборудование
- •7 Теоретическая часть
- •7.1 Язык диалога mml
- •7.2 Язык диалога axe-10
- •8 Практическая часть
- •Разработка программ на языке chill
- •Оборудование
- •7 Теоретическая часть
- •7.2 Основные понятия
- •7.2.1 Значения и их типы
- •7.2.2 Имена объектов программ
- •7.2.5 Оператор присваивания
- •7.2.6 Области памяти с режимом «только для чтения»
- •7.2.7 Выражение
- •7.2.8 Константы
- •7.3 Структура программ
- •7.3.1 Обозримость и время жизни объектов программы
- •7.3.2 Модули
- •7.3.3 Блоки
- •7.3.4 Процедуры
- •7.3.5 Процессы
- •7.4 Пример технологической программы
- •8 Практическая часть
7.3.2 Модули
Основной программной конструкцией в языке СHlLL является модуль, ограниченный скобками MODULE – END. В отношении модуля также действует общее правило: описанные в нем объекты обозримы только внутри него. Однако именно в программную конструкцию модуля включены средства, позволяющие нарушить это общее правило. Эти средства носят название интерфейса модуля. Они позволяют четко управлять как обозримостью внешних объектов внутри модуля, так и возможностью обозримости внутренних (локальных) объектов модуля за его пределами.
В определении модуля можно задать его имя, отделяемое от слова MODULE знаком «:». После слова MODULE следует тело модуля и слово END, закрывающее эту программную единицу и знак «;». Перед «;» можно указать имя завершенного модуля. Тело модуля состоит из двух частей: части, содержащей спецификацию интерфейса и описания локальных объектов программы модуля (операторы определения и описания), и части, содержащей список операторов действия.
Отметим, что в описательную часть модуля могут быть включены определения процедур и процессов, а в число операторов действия могут входить внутренние модули и блоки, а также операторы вызова процедур, запуска или останова процессов.
Интерфейсная часть содержит перечень глобальных имен (описанных вне модуля), обозримых внутри модуля, и перечень локальных имен (внутримодульных), обозримых вне модуля. Глобальные имена, обозримые внутри модуля, задаются оператором включения SEIZE.
Локальные имена, обозримые вне модуля, задаются оператором разрешения GRANT.
Программная конструкция – модуль – является эффективным средством структурирования программ. В модуль следует группировать по возможности все логически связанные объекты. Спецификация интерфейса при организации модуля строго определяет все возможные его связи с внешней средой. Следствием этого является возможность проведения параллельной разработки и модификаций отдельных модулей большой программы, этом конкретная реализация каждого модуля не влияет на связи с внешней средой (спецификация интерфейса должна оставаться неизменной).
7.3.3 Блоки
Другой программной конструкцией языка CHILL является блок. В общем случае блок состоит из списка операторов определений и описаний и списка операторов действия. Все это заключено в операторные скобки BEGIN и END. Блок может иметь конкретное имя перед BEGIN и после END.
При входе в блок создаются все описанные внутри блока объекты данных, т.е. за этими объектами закрепляются области в памяти ЭВМ. После выполнения операторов, входящих в тело блока, происходит выход из блока, при этом память ЭВМ освобождается.
Внутри блока могут быть использованы объекты данных, описанные во внешней по отношению к блоку программной конструкции.
7.3.4 Процедуры
Процедура является дальнейшим развитием концепции программного блока, облегчающим многократное исполнение одинаковой последовательности простейших операторов (подпрограммы).
Действительно, если требуется выполнить некоторое сложное действие, представляющее собой определенную последовательность команд, в различных местах программы, то, используя только блочную конструкцию, необходимо в этих местах многократно повторить одну и ту же последовательность операторов блока.
Концепция процедуры состоит в том, что данный блок, описанный всего один раз, рассматривается не как описание последовательности простейших действий, а как одно конкретное действие высокого уровня (как оператор действия), за которым закрепляется имя.