
- •2) Проблема разрешимости
- •4) Эффективный ап, классы эквивалентности, управляемый ап.
- •5) Простой ап, его протокол. Репозиция ап.
- •6)Сети Петри: граф, структура, назначение, маркировка. Выполнение сп.
- •7)Особенности моделирования сетями Петри
- •8) Свойства сп:
- •9) Дерево достижимости
- •10)Анализ свойств сетей Петри с помощью дерева достижимости.
- •14) Виды конечных автоматов
- •15) Работа ка. Автоматы-преобразователи и автоматы-распознаватели.
- •16) Прямое произведение ка. Эквивалентность автоматов.
- •17) Нахождение эквивалентных состояний ка. Теорема Мура
- •18) Минимизация ка.
- •19) Взаимодействующие последовательные процессы (впп).
- •20) Протоколы впп и операции с ними.
- •21) Свойства параллельных вычислительных процессов (пвп).
- •22.3) Программирование пвп. Признаки параллельности.
- •24) Моделирование пвп: метод процесс/канал.
- •25)Моделирование пвп: метод обмена сообщениями.
- •26)Моделирование пвп: метод параллелизма данных.
- •27)Моделирование пвп: метод использования общей памяти.
- •28) Семантическая теория программ. Метаязыки для описания синтаксиса.
- •30) Семантическая теория программ. Денотационная семантика.
- •31) Семантическая теория программ. Операционная и декларативная семантика.
- •32) Аксиоматическая семантика
- •33) Жизненный цикл по. Основные модели жизненного цикла.
- •34) Верификация как этап жизненного цикла по.
24) Моделирование пвп: метод процесс/канал.
1. Параллельное вычисление состоит из одного или более одновременно исполняющихся процессов, число которых может изменяться в течение времени выполнения программы.
2. Процесс - это последовательная программа с локальными данными. Процесс имеет входные и выходные порты, которые служит интерфейсом к среде процесса.
3. В дополнение к обычным операциям процесс может выполнять следующие действия: послать сообщение через выходной порт, получить сообщение из входного порта, создать новый процесс и завершить процесс. 4. Посылающаяся операция асинхронная - она завершается сразу, не ожидая того, когда данные будут получены. Получающаяся операция синхронная: она блокирует процесс до момента поступления сообщения.
5. Пары из входного и выходного портов соединяются очередями сообщений, называемыми каналами. Каналы можно создавать и удалять. Ссылки на каналы можно включать в сообщения, т.е связность изменяется динамически.
6. Процессы можно распределять по физическим процессорам произвольным способами, причем используемое отображение (распределение) не воздействует на семантику программы. В частности, множество процессов можно отобразить на одиночный процессор.
25)Моделирование пвп: метод обмена сообщениями.
Каждый процесс выполняет одну и ту же программу (параметризованную относительно идентификатора либо процесса, либо процессора), но работает с разными данными.
Каждый процесс идентифицируется уникальным именем.
Процессы взаимодействуют, обмениваясь сообщениями.
Нет ограничений на динамическое создание процессов, на выполнение нескольких процессов одним процессором, на использование разных программ для разных процессов.
Не позволяет создавать и разрушать процессы в течение работы программы.
26)Моделирование пвп: метод параллелизма данных.
Единственная программа задает распределение данных между всеми процессорами компьютера и операции над ними.
Распределяемые данные представляются массивами.
Компилятор отвечает за генерацию кода, осуществляющего распределение элементов массивов и вычислений между процессорами.
Параллелизм заключается в применении одной и той же операции к множеству элементов структур данных.
27)Моделирование пвп: метод использования общей памяти.
Все процессы совместно используют общее адресное пространство, к которому они асинхронно обращаются с запросами на чтение и запись.
Для управления доступом к общей памяти используются стандартные механизмы синхронизации - семафоры и блокировки процессов.
Понятие собственности данных (монопольного владения данными) отсутствует,т.е. не нужно явно задавать обмен данными между производителями и потребителями.
28) Семантическая теория программ. Метаязыки для описания синтаксиса.
Составляющие языка программирования
Алфавит – набор знаков, используемых для описания элементов (слов) языка.
Слово языка – последовательность знаков алфавита, построенная операцией конкатенации.
Синтаксис – правила построения слов и предложений (операторов) языка.
Семантика – смысловая нагрузка слов и операторов языка программирования.
Описание синтаксиса языка программирования
Метаязык Хомского
символ “®” отделяет левую часть правила от правой (читается как "порождает" и "это есть");
нетерминалы обозначаются буквой А с индексом, указывающим на его номер;
терминалы - это символы используемые в описываемом языке;
каждое правило определяет порождение одной новой цепочки, причем один и тот же нетерминал может встречаться в нескольких правилах слева.
Описание идентификатора:
Метаязык Хомского-Щутценберже
символ “=” отделяет левую часть правила от правой;
нетерминалы обозначаются буквой А с индексом, указывающим на его номер;
терминалы - это символы используемые в описываемом языке;
каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом “+”, что позволяет, при желании, использовать в левой части только разные нетерминалы.
Бэкуса-Наура формы (БНФ)
символ "::=" отделяет левую часть правила от правой;
нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки "<" и ">";
терминалы - это символы, используемые в описываемом языке;
каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты "|".
Расширенные Бэкуса-Наура формы (РБНФ)
Квадратные скобки "[" и "]" означают, что заключенная в них синтаксическая конструкция может отсутствовать;
фигурные скобки "{" и "}" означают ее повторение (возможно, 0 раз);
круглые скобки "(" и ")" используются для ограничения альтернативных конструкций;
сочетание фигурных скобок и косой черты "{/" и "/}" используется для обозначения повторения один и более раз. Нетерминальные символы изображаются словами, выражающими их интуитивный смысл и написанными на русском языке.
Терминальные символы изображаются словами, написанными буквами латинского алфавита (зарезервированные слова) или цепочками знаков, заключенными в кавычки. Синтаксическим правилам предшествует знак "$" в начале строки. Каждое правило оканчивается знаком "." (точка).
Левая часть правила отделяется от правой знаком "=" (равно), а альтернативы - вертикальной чертой "|".
синтаксис идентификатора:
$ идентификатор = буква {буква | цифра}.