
- •230100 «Информатика и вычислительная техника»
- •1 Общие положения
- •1.1 Цели и задачи дисциплины
- •2 Лекция №1 схемы алгоритмов
- •2.1 Ключевые (основные) вопросы (моменты)
- •2.2 Текст лекции
- •2.2.1 Схемы Ляпунова-Янова
- •2.2.2 Программы
- •2.2.3 Микропрограммирование
- •3 Лекция №2 программирование
- •3.1 Ключевые (основные) вопросы (моменты)
- •3.2 Текст лекции
- •3.2.1 Парадигмы программирования
- •3.2.2 Функциональное программирование
- •4 Лекция №3
- •4.1 Ключевые (основные) вопросы (моменты)
- •4.2 Текст лекции
- •4.2.1 Продукционные системы
- •4.2.2 Императивное и объектно-ориентированное программирование
- •5 Лекция №4
- •5.1 Ключевые (основные) вопросы (моменты)
- •5.2 Текст лекции
- •5.2.1 Информационный граф
- •6 Лекция №5
- •6.1 Ключевые (основные) вопросы (моменты)
- •6.2 Текст лекции
- •6.2.1 Управление вычислительным процессом
- •6.2.2 Управление последовательностью команд
- •7 Лекция №6
- •7.1 Ключевые (основные) вопросы (моменты)
- •7.2 Текст лекции
- •7.2.1 Управление по потоку данных
- •8 Лекция №7
- •8.1 Ключевые (основные) вопросы (моменты)
- •8.2 Текст лекции
- •8.2.1 Механизм управления по запросу
- •8.2.2 Механизмы передачи данных
- •9 Лекция №8
- •9.1 Ключевые (основные) вопросы (моменты)
- •9.2 Текст лекции
- •9.2.1 Организация процессора пересылок
- •9.2.2 Пример программы
- •10 Лекция №9
- •10.1 Ключевые (основные) вопросы (моменты)
- •10.2 Текст лекции
- •10.2.1 Теговые машины
- •10.2.2 Ассоциативный процессор
- •11 Лекция №10
- •11.1 Ключевые (основные) вопросы (моменты)
- •11.2 Текст лекции
- •11.2.1 Вычисления с использованием стека
- •12 Лекция №11
- •12.1 Ключевые (основные) вопросы (моменты)
- •12.2 Текст лекции
- •12.2.1 Принципы организации параллельныхвычислений
- •13 Лекция №12
- •13.1 Ключевые (основные) вопросы (моменты)
- •13.2 Текст лекции
- •13.2.1 Квантовые вычисления
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
Кафедра ИТ-4 «Персональные компьютеры и сети»
ЛЕКЦИИ
по дисциплине Теория вычислительных процессов
Рекомендуется для направления подготовки
230100 «Информатика и вычислительная техника»
Профиль подготовки
«Вычислительные машины, комплексы, системы и сети»
Квалификация (степень) выпускника - бакалавр
Москва, 2013
1 Общие положения
1.1 Цели и задачи дисциплины
Целью дисциплины является изучение теории вычислительных процессов в аспекте их реализации в виде основных архитектур процессоров, принципов построения многопроцессорных систем, принципов оперативного хранения информации и принципов параллельной обработки данных.
Объектами изучения являются характеристики и принципы построения элементной базы; классическая архитектура процессора; процессоры со стековой архитектурой; конвейерный принцип организации вычислений; машины потоков данных; элементы функционального программирования; организация памяти с чередованием адресов; принцип построения ассоциативной памяти; понятие о многопроцессорных системах; матричные многопроцессорные системы; параллельность вычислений как свойство задач.
2 Лекция №1 схемы алгоритмов
2.1 Ключевые (основные) вопросы (моменты)
— схемы Ляпунова-Янова;
— программы и микропрограммы.
2.2 Текст лекции
2.2.1 Схемы Ляпунова-Янова
В 1953 году А.А. Ляпунов предложил записывать алгоритмы в виде конечной строки, состоящей из символов операторов (термин введён Ляпуновым) и логических условий, называемых членами схемы, а также верхних и нижних стрелок, которым приписаны натуральные числа:
1 1 2 2 2
ωн ω1 z1 ↑ω2 ω3 ↓ z2 ↑ ω4 ω5 z3 ↑ω6 ↓ ω7 ωк.
В этой схеме кроме начального (ωн) и конечного (ωк) операторов используются семь операторов (ω1,ω2,…,ω7) и три логических условия (z1,z2,z3), все символы рассматриваются слева направо. В случае если логическое условие zi = 0, происходит переход по верхней стрелке, следующей за этим логическим условием, к нижней стрелке с тем же номером без выполнения, стоящих между этими стрелками операторов. В случае если логическое условие zi=1, выполняется следующий за стрелкой оператор.
Полная запись алгоритма по Ляпунову состоит из двух частей: схемы алгоритма, показывающей порядок расположения операторов в программе и направления передач управления, и спецификации образующих программу операторов.
Логические схемы алгоритмов удовлетворяют следующим условиям:
содержат один начальный (ωн) и один конечный оператор (ωк);
перед оператором ωн и после оператора ωк стрелок быть не должно;
вслед за каждым логическим условием (zi) всегда стоит верхняя стрелка;
не существует одинаковых (с одинаковыми цифрами) нижних стрелок;
для каждой нижней стрелки должна быть по крайней мере одна соответствующая ей (с одинаковой цифрой) верхняя стрелка;
для каждой верхней стрелки должна быть точно одна соответствующая ей (с одинаковой цифрой) нижняя стрелка.
В операторном методе Ляпунова впервые была предпринята попытка формализации понятия программы и провозглашена, как фундаментальная, проблема разработки эквивалентных преобразований программ. В качестве объектов, на которых можно строить эквивалентные преобразования программ, были введены схемы программ, сохраняющие управляющую структуру программ и отвлекающиеся от детального описания операторов и логических условий, используемых в программах.
Благодаря использованию схем появилась возможность исследовать общие свойства программ, не зависящие от примененных конкретных понятий, а также общие их преобразования. Схемы программ стали основным объектом исследования ученика А.А.Ляпунова, Ю.И.Янова, который в 1958 году в своей работе “О логических схемах алгоритмов”, впервые представил разработанные на схемах системы эквивалентных преобразований программ.
В схемах Янова используется лишь одна переменная, все функции и предикаты одноместные, функция f уникальна для каждого присваивания. Дополнительно в вычислительную модель вводится значение s, называемое текущим состоянием мира, которое принадлежит множеству S полных состояний вычислительной системы. Прежде чем обратиться к таким моделям вычислений, как автоматы, отметим, что в 1964 году в работе Ратледжа (J.D.Rutledge, On Ianov’s Program Schemata) была показана адекватность схем, принадлежащих максимальной модели программ без процедур (т.е. схем Ляпунова-Янова), конечным автоматам.
Разновидностью языка, позволяющего описывать логические схемы алгоритмов, является язык граф-схем алгоритмов (ГСА), который используется не только для описания формальных элементов, но дает возможность представить логические условия и операторы в содержательных терминах. Язык граф-схем алгоритмов рассматривается в следующем разделе учебного пособия.