
- •Вопрос 2. Спецификация, представление, реализация абстрактных типов данных.
- •Вопрос 3. Многомашинные вс. Реализация на основе ес эвм. Кластерные вс.
- •Типы кластеров:
- •Вопрос 2. Линейные структуры данных: стек, очередь, дек
- •Вопрос 3. Сравнительный анализ и основные компоненты инструментальных среды разработки пользовательских интерфейсов. Классификация элементов пользовательского интерфейса
- •Вопрос 1. Конкретные реализации языков функционального программирования: язык программирования Лисп, основные объекты, примитивы, списки, правила составления программ.
- •Вопрос 2. Семантическая теория программ. Вычислимость и разрешимость
- •Вопрос 3. Формальные методы описания диалоговых систем. Законы Фитса и Хика.
- •Вопрос 1. Основные конструкции логической программы: факты, правила, запросы, логические переменные. Операционная и декларативная семантика логических программ.
- •1. 5. Декларативный и процедурный смысл программ
- •Вопрос 2. Интерфейсы. Способы согласования аппаратных структур. Организация асинхронных интерфейсов
- •Элементы процесса как поведенческой категории :
- •Дескриптивный асинхронный процесс (dp)
- •Асинхронный процесс (ap)
- •Инициаторы
- •Вопрос 3. Эргономика пользовательского интерфейса. Критерии эргономичности интерфейса. Человеческие ошибки. Методы предотвращения ошибок. Снижение чувствительности системы к ошибкам.
- •Типы ошибок
- •Методы предотвращения ошибок
- •Как избежать сообщений об ошибках
- •Вопрос 1. Интерпретация и корректность логических программ. Абстрактный интерпретатор, значение логической программы, вычислительная модель
- •Вопрос 2. Порядковые статистики (Гулаков сказал что его не будет)
- •Субъективная удовлетворенность
- •Типичные интерфейсные ошибки отечественного по
- •Программа перегружена элементами управления
- •Терминология не адекватна знаниям пользователя о системе
- •От пользователя постоянно требуется дополнительная информация
- •Вопрос 1. Программирование баз данных. Динамическая база данных. Добавление и удаление фактов в процессе работы программы.
- •Вопрос 2. Поиск и кодирование (сжатие) данных, кодовые деревья, оптимальные префиксные коды
- •Вопрос 1. Рекурсивное программирование на логическом языке. Рекурсивные структуры данных – списки. Объявление списков. Составные списки. Голова и хвост списка. Примеры работы со списками.
- •Вопрос 2. Бинарный поиск, хеширование
- •Вопрос 3. Тестирование и отладка программного обеспечения. Структурное и функциональное тестирование. Особенности тестирования объектно-ориентированного по. Автоматизация процесса тестирования.
- •Вопрос1. Вычислительная модель программы на логическом языке. Согласование целевых утверждений. Сопоставление и унификация. Детерминизм.
- •Вопрос 2. Понятие выполнения сети. Свойства сети (устойчивость, безопасность, консервативность).
- •Вопрос 3. Автоматизация проектирования программного обеспечения на базе case-технологий. Принципы построения и т.Д.
- •Вопрос 1. Множественные выражения Программирование второго порядка Недетерминированное программирование
- •Вопрос 2. Нелинейные структуры данных: иерархические списки, деревья и леса, бинарные деревья
- •Вопрос 1. Вне логические предикаты. Ввод-вывод. Доступ к программам и обработка программ. Металогические предикаты. Сравнение не основных термов.
- •Вопрос 2. Алгоритмы сортировки
- •Сортировка разделением (Quicksort)
- •Вопрос 1. Constraint–Пролог: операционная семантика обобщение механизма унификации, понятие constraint'а. Операционная модель Constraint-пролоГа.
- •Вопрос 2. Нелинейные структуры: обходы деревьев
- •Вопрос 3. Качество по. Критерии качества: сложность, корректность, надежность, трудоемкость. Методика оценки качества по. Метрические особенности объектно-ориентированных пс. Сертификация по
- •Вопрос 1. Cancelled мистером г.
- •Вопрос 2. Стандартные схемы программ. Методы формальной спецификации и верификации.
- •Вопрос 1. Использование деревьев в задачах поиска: бинарные деревья поиска, случайные, оптимальные, сбалансированные по высоте и рандомизированные деревья поиска
- •. Деревья цифрового поиска
- •Вопрос 2. Определение асинхронного процесса как описания модели вычислительного процесса. Глобальные свойства – асинхронность, недетерминированность, параллельность.
- •1. Задачи сортировки; внутренняя и внешняя сортировка
- •2. Подклассы асинхронного процесса. Эффективный асинхронный процесс
- •Длительность реакции системы
- •Субъективное восприятие скорости работы
- •Приемы для уменьшения субъективного восприятия
- •1. Оптимальная сортировка.
- •2. Конвейерный процесс. Автономный процесс. Асинхронный процесс как метамодель.
- •Непосредственное манипулирование
- •Потеря фокуса внимания (прерывание)
- •Ограничение принятия решений
- •1. Анализ сложности и эффективности алгоритмов поиска и сортировки.
- •2. Классификация сетей (ординарные, автоматные, маркированный граф).
- •Понятность системы
- •Ментальная модель
- •Метафора
- •Аффорданс
- •Стандарт
- •1. Файлы: организация и обработка, представление деревьями: b-деревья.
- •2. Сетевое представление параллельных процессов. Области применения сетей Петри
- •3. Основы теории формальных языков и грамматик. Основные понятия и определения. Операции над языками. Классификация формальных языков и грамматик по порождающей способности
- •1. Алгоритмы на графах: представления графов, схемы поиска в глубину и ширину, минимальное остовное дерево, кратчайшие пути.
- •2.1.Поиск в глубину
- •2.2 Поиск в ширину.
- •2. Протоколы взаимодействия объектов вычислительных структур. Понятие протокола.
- •3. Вывод контекстно-свободных (кс) – грамматик и правила построения дерева вывода. Синтаксический разбор. Способы задания схем грамматик. Форма Бэкуса-Наура.
- •1. Теория сложности алгоритмов: np-сложные и труднорешаемые задачи.
- •2. Недетерминированные конечные автоматы. Конечные преобразователи и переводы. Преобразование некоторых грамматик к автоматному виду.
- •3. Объектно-ориентированное проектирование. Принципы проектирования. Схемы, диаграммы, инструменты.
- •1. Детерминированные конечные автоматы. Эквивалентные состояния и автоматы.
- •2. Синтаксический анализ. Метод оперативного предшествования. Восходящие и нисходящие методы синтаксического анализа.
- •2. Жизненный цикл программного обеспечения. Структура жизненного цикла согласно международного стандарта.
- •1. Нисходящие распознаватели. Ll(k) – грамматики. Построение детерминированного нисходящего распознавателя.
- •2. Параллельная обработка как основа высокопроизводительных вычислений. Уровни организации параллелизма: уровень заданий, программ и команд. Системы (языки) параллельного программирования.
- •1. Восходящие распознаватели. Lr(k) грамматики. Построение грамматики.
- •2. Понятие архитектуры вычислительной системы (вс). Архитектура как набор компонент и как система уровневых интерфейсов. Основные аппаратные и программные элементы вс.
- •1.1. Архитектура как набор взаимодействующих компонент
- •1.2. Архитектура как интерфейс между уровнями физической системы
- •1. Магазинные преобразователи. Определение магазинного преобразователя. Перевод, определяемый преобразователем.
- •2. Архитектура системы команд. Микропроцессоры (мп) с полным (cisc) и сокращённых (risc) набором команд. Основные принципы risc- архитектуры. Организация risc мп Alpha 21x64 фирмы dec.
- •Особенности архитектуры Alpha компании dec
- •1. Описание перевода или трансляции. Синтаксически-управляемые (су) – схемы.
- •2. Основные идеи объектно-ориентированных языков программирования. Создание абстрактных типов данных. Инкапсуляция. Полиморфизм. Наследование.
- •3. Развитие архитектур современных мп. Конвейеризация и динамическое выполнение потока команд. Суперскалярность. Архитектура epic мп Intel itanium.
- •1. Транслирующие грамматики. Построение транслирующей грамматики по су-схеме. Атрибутные транслирующие грамматики.
- •3. Векторные и векторно-конвейерные вс. Структура векторного процессора. Матричные вс.
- •1. Трансляторы, интерпретаторы и компиляторы. Стадии работы компиляторы. Лексический анализ.
- •3. Системы массовой параллельной обработки (мрр). Супер эвм фирмы sgi - Cray t3e(t3d) -1200.
- •2. Классификация и типы вс. Многомашинные и многопроцессорные вс. Представление вс на основе распределения потоков команд и данных (классификация Флинна)
1. 5. Декларативный и процедурный смысл программ
Различать два уровня смысла программы на Прологе, а именно:
декларативный смысл и
процедурный смысл.
Декларативный смысл касается только отношений, определенных в программе. Таким образом, декларативный смысл определяет, что должно быть результатом работы программы. С другой стороны, процедурный смысл определяет еще и как этот результат был получен, т. е. как отношения реально обрабатываются пролог-системой.
Способность пролог-системы прорабатывать многие процедурные детали самостоятельно считается одним из специфических преимуществ Пролога. Это свойство побуждает программиста рассматривать декларативный смысл программы относительно независимо от ее процедурного смысла. Поскольку результаты работы программы в принципе определяются ее декларативным смыслом, последнего (Опять же в принципе) достаточно для написания программ. Этот факт имеет практическое значение, поскольку декларативные аспекты программы являются, обычно, более легкими для понимания, нежели процедурные детали. Чтобы извлечь из этого обстоятельства наибольшую пользу, программисту следует сосредоточиться главным образом на декларативном смысле и по возможности не отвлекаться на детали процесса вычислений. Последние следует в возможно большей мере предоставить самой пролог-системе.
Такой декларативный подход и в самом деле часто делает программирование на Прологе более легким, чем на таких типичных процедурно-ориентированных языках, как Паскаль. К сожалению, однако, декларативного подхода не всегда оказывается, достаточно. Далее станет ясно, что, особенно в больших программах, программист не может полностью игнорировать процедурные аспекты по соображениям эффективности вычислений. Тем не менее следует поощрять декларативный стиль мышления при написании пролог-программ, а процедурные аспекты игнорировать в тех пределах, которые устанавливаются практическими ограничениями.
Вопрос 2. Интерфейсы. Способы согласования аппаратных структур. Организация асинхронных интерфейсов
Внимание! Горбунов сказал, что главное – это, что асинхронные процессы описывают разные процессы, и у них нет привязки ко времени.
Примером асинхронного процесаа (или модели?) является сеть Петри
Как правило, современные автоматизированные дискретные системы и персональные ЭВМ строятся на основе модульного (агрегатного) принципа: устройства машин, сами машины, равно как и программное обеспечение, выполняются в виде отдельных функциональных и структурных единиц (модулей). Последние могут объединяться, образуя сложные системы. Организация модулей в систему с необходимостью предполагает взаимодействие между модулями, что требует значительных временных, аппаратных и программных ресурсов. Фундаментальным понятием, отражающим аспект взаимодействия модулей в системе, является понятие интерфейса.
В широком смысле под интерфейсом (или сопряжением) понимается совокупность правил, обеспечивающих совместное функционирование аппаратных и программных средств. Иногда интерфейсом называются и сами технические средства, созданные в соответствии с этими правилами.
Сопряжение (в отличие от устройств сопряжения) не является частью аппаратных средств, а представляет собой сечение (границу) между модулями системы, на котором определены сигналы и процедуры обмена. Сопряжение точно определяет, какие сигналы или сообщения могут пересекать это сечение и каков их смысл. Оно должно обеспечивать единый метод передачи данных независимо от внутренних особенностей взаимодействующих модулей и относится исключительно к обмену сигналами между устройствами. Правильно определенное содержание сопряжения является необходимым условием разработки интерфейса.
Совокупность правил и средств, составляющих структуру сопряжения – интерфейс, принято делить на три уровня: механический, электрический и логический.
Механический (конструктивный) уровень определяет совокупность требований, которым должны удовлетворять узлы интерфейсной аппаратуры – кабель, линии связи, разъемные соединения, интерфейсные карты (адаптеры) и т.д.
Электрический уровень сопряжения оговаривает допуски на параметры входных и выходных электрических сигналов, токовые нагрузки на источник сигнала. Они зависят от принятой электрической базы.
Логический уровень сопряжения обеспечивает координацию протекания информационных потоков между устройствами. Он определяет способ представления сигналов, символов, сообщений, обозначение и классификацию сигналов и сообщений. Логический уровень – наиболее сложная часть правил спряжения. Логическое согласование объединенных в систему устройств предусматривает функционирование сопрягаемых модулей по установленным алгоритмам. Основным понятием, отражающим координированное функционирование объектов логического уровня интерфейса, является понятие протокола информационного обмена.
Под протоколом информационного обмена (далее – просто протоколом) обычно понимают свод правил, которых нужно придерживаться, чтобы обеспечить упорядоченный информационный обмен между двумя или более объектами.
Термин «протокол» получил широкое распространение в литературе по вычислительной технике и системам управления; его появление связано скорее всего, некоторым сходством с понятием дипломатического протокола (совокупность правил, регулирующих порядок различных дипломатических актов) и протокола заседания (изложение в письменной форме хода заседания). Была разработана даже теория протоколов (информационного обмена), предметом которой являются способы задания, анализа и синтеза интерфейсного взаимодействия. Несмотря на некоторые успехи этой теории, на практике для описания интерфейсных протоколов чаще всего применяются неформальные или полуформальные средства, такие, как естественный язык, временные диаграммы, циклограммы или блок – схемы алгоритмов. Вследствие этого они чрезвычайно громоздки и, что хуже, допускают неоднозначное толкование. Вообще говоря, при составлении протоколов необходимо удовлетворить несколько требований: компактное представление правил обмена, их однозначное толкование, возможность проверки задания на полноту и непротиворечивость, возможность перехода от протоколов непосредственно к синтезу интерфейсного устройства. Путь к этому открывает только формализация языка описания, которая может быть осуществлена в терминах асинхронных процессов.
Согласованные асинхронные процессы
Пусть заданы два приведенных процесса: P1п = S1,F1,I1,R1 и P2п = S2,F2,I2,R2 с ситуациями, в которых выделены входная и выходная компоненты. Элементы подмножества Y1 значений выходной компоненты ситуаций первого процесса (Y1 Y1) соответствуют (эквивалентны) элементам подмножества X2 значений входной компоненты ситуаций второго процесса (X2 X2), а элементы подмножества Y2 значений выходной компоненты ситуации второго процесса (Y2Y2) – элементам подмножества X1 значений входной компоненты ситуаций первого процесса (X1X1).
Осуществим, если это возможно, последовательную композицию процессов P1п и P2п, считая, что Y1 = X2 (либо Y2 = X1). Результатом композиции является асинхронный процесс P1,2п(P2,1п). В ситуациях АП P1,2п(P2,1п) выделим входную компоненту, совпадающую с входной компонентой ситуации P1п(P2п). Построим, если это возможно, замыкание P1,2з(P2,1з) АП P1,2п(P2,1п) считая, что поэлементно Y2 = X1 (Y1 = X2). На основании введенных ранее понятий редукции и замыкания АП нетрудно доказать, что P1,2з = P2,1з.
Ситуации построенного таким образом АП имеют следующую структуру:
S = (u, v, z),
где: u = y1 = x2, v = y2 = x1, z = (z1, z2), причем компоненты u и v принимают значения из множества UY1X2 и VY2X1 соответственно.
Два АП будем называть согласованными относительно множеств U и V, если результатом применения к ним последовательной композиции и замыкания является автономный процесс, заданный на непустом множестве ситуаций, компоненты u и v которых являются входными и выходными компонентами ситуаций этих процессов.
Связь алгоритма с процессом в вычислительной системе
Применение правил решения задачи в вычислительной системе порождает процесс, который характеризует текущее состояние реализованного алгоритма. В то же время процесс представляет собой поведенческую категорию относительно системы или структуры, которая его реализует.