Языки

1. Языки и программирование

1.1. Введение в языки программирования

1.1.1. Основные понятия и определения

1.1.1.1. Языки и знаки

1.1.1.2. Языки моделирования

1.1.1.3. Языки программирования высокого уровня

1.1.2. История и эволюция

1.1.2.1. История и эволюция языков моделирования

1.1.2.2. История и эволюция языков программирования

1.1.3. Классификация языков

1.1.3.1. Классификация языков моделирования

1.1.3.2. Классификации языков программирования

1.1.4. Проблемы и перспективы развития

1.1.5. Рекомендации по литературе

1.2. Языки, поддерживающие классические технологические процессы

1.3. Языковые абстракции

1.3.1. Отступление "об абстрагировании"

1.3.2. Абстракция данных

1.3.2.1. Данные и типы данных

1.3.2.2. Эволюция определения типа данных

1.3.2.3. Абстрактные типы данных

1.3.2.4. Разновидности полиморфизма

1.3.2.5. Статический и динамический контроль типов

1.3.2.6. Статически и динамически типизируемые языки программирования

1.3.3. Абстракция управления

1.3.3.1. Структурное программирование

1.3.3.2. Визуальное структурное программирование

1.3.3.3. Оператор перехода

1.3.3.4. Оператор итерации

1.3.3.5. Оператор исключения

1.3.3.6. Зависимости по управлению и по данным

1.3.4. Абстракция модульности

1.3.4.1. Модульное программирование

1.3.4.2. Определения модуля и его примеры

1.3.4.3. Характеристики модульности

1.4. Классы языков

1.4.1. Императивные

1.4.1.1. Низкого уровня

1.4.1.1.1. Основные понятия и определения

1.4.1.1.2. Ассемблеры

1.4.1.1.3. Макропроцессоры

1.4.1.2. Высокого уровня.

1.4.1.2.1. Обзор языков, принадлежащих к семействам

1.4.1.2.1.1. Семейство универсальных языков

1.4.1.2.1.2. Семейство уникальных языков

1.4.1.2.1.3. Семейство языков параллельного программирования

1.4.1.2.1.4. С-семейство языков

1.4.1.2.1.5. Pascal-семейство языков

1.4.1.2.1.6. Ada-семейство языков

1.4.1.2.1.7. Simula-семейство языков

1.4.1.2.1.8. Lisp-семейство языков

1.4.1.2.1.9. Prolog-семейство языков

1.4.1.2.2. Обзор языков, ориентированных на предметную область

1.4.1.2.2.1. Языки форматирования текстов

1.4.1.2.2.2. Языки разметки

1.4.1.2.2.3. Языки скриптов

1.4.1.2.2.4. Промежуточные языки программирования

1.4.1.2.2.5. Языки программирования агентов

1.4.1.2.2.6. Языки создания графики

1.4.1.2.2.7. Языки описания аппаратуры

1.4.1.2.2.8. Языки описания виртуальной реальности

1.4.1.2.2.9. Языки конфигурирования

1.4.2. Декларативные

1.4.2.1. Функциональные

1.4.2.1.1. Введение

1.4.2.1.1.1. История функционального программирования

1.4.2.1.1.2. Свойства функциональных языков

1.4.2.1.1.2.1. Краткость и простота

1.4.2.1.1.2.2. Строгая типизация

1.4.2.1.1.2.3. Модульность

1.4.2.1.1.2.4. Функции — это значения

1.4.2.1.1.2.5. Чистота (отсутствие побочных эффектов)

1.4.2.1.1.2.6. Отложенные вычисления

1.4.2.1.1.3. Решаемые задачи

1.4.2.1.1.4. Языки функционального программирования

1.4.2.1.2. Структуры данных и базисные операции

1.4.2.1.2.1. Несколько слов о программной реализации

1.4.2.1.2.2. Примеры

1.4.2.1.2.3. Типы в функциональных языках

1.4.2.1.2.4. Несколько слов о нотации абстрактного языка

1.4.2.1.2.4.1. Образцы и клозы

1.4.2.1.2.4.2. Охрана

1.4.2.1.2.4.3. Локальные переменные

1.4.2.1.2.5. Элементы программирования

1.4.2.1.2.5.1. Накапливающий параметр — аккумулятор

1.4.2.1.2.5.2. Принципы построения определений с накапливающим параметром

1.4.2.1.3. Конструирование функций

1.4.2.1.4. Доказательство свойств функций

1.4.2.1.4.1. D — линейно упорядоченное множество

1.4.2.1.4.2. D — определяется как индуктивный класс

1.4.2.1.5. Формализация Функционального Программирования на основе ?-исчисления

1.4.2.1.5.1. Понятие формальной системы

1.4.2.1.5.2. Построение формальной системы

1.4.2.1.5.3. Стратегия редукции

1.4.2.1.5.4. Соответствие между вычислениями функциональных программ и редукцией

1.4.2.1.5.5. Представление определений функций в виде ?-выражений

1.4.2.1.6. Трансформация программ

1.4.2.1.6.1. Виды преобразований

1.4.2.1.6.1.1. Второй закон информатики

1.4.2.1.6.2. Частичные вычисления

1.4.2.2. Логические

1.4.2.2.1. Введение.

1.4.2.2.2. Сравнение с традиционными языками программирования.

1.4.2.2.3. Программирование

1.4.2.2.3.1. Порядок правил.

1.4.2.2.3.2. Проблема завершения программ.

1.4.2.2.3.3. Порядок целей.

1.4.2.2.3.4. Избыточные решения.

1.4.2.2.4. Практические рекомендации.

1.4.2.2.4.1. Эффективность программ

1.4.2.2.4.2. Разработка программ.

1.4.2.2.5. Некоторые языки логического программирования.

1.4.2.2.5.1. Язык логического программирования KL0.

1.4.2.2.5.2. Типы данных KL0.

1.4.2.2.5.3. Язык программирования ShapeUp.

1.4.2.3. Объектно-ориентированные

1.4.2.3.1. Развитие концепций стpуктуpизации в языках пpогpаммиpования

1.4.2.3.2. Спецификация объектов на основе абстpагиpования

1.4.2.3.3. Идентификация объектов

1.4.2.3.4. Интеpпpетация объектов

1.4.2.3.5. Создание / уничтожение объектов

1.4.2.3.6. Динамические структуры объектов

1.4.2.3.7. Процессы в объектах

1.4.2.3.8. Инкапсуляция

2. Теория языков

2.1. Грамматики

2.1.1. Грамматики в языках программирования

2.1.1.1. Определение формальной грамматики и языка

2.1.1.2. Типы формальных грамматик

2.1.1.3. Дерево вывода. Левосторонний и правосторонний выводы

2.1.1.4. Неоднозначные грамматики

2.1.1.5. Способы задания схем грамматик

2.1.1.6. Приемы построения грамматик

2.1.1.7. Грамматики, описывающие простейшие конструкции языков программирования

2.1.2. Порождающие грамматики Хомского

2.1.2.1. Грамматики общего вида

2.1.2.2. Контекстно-зависимые грамматики

2.1.2.3. Контекстно-свободные грамматики

2.1.2.4. Эквивалентные преобразования КС-грамматик

2.1.2.5. Автоматные грамматики

2.1.3. Предикативные грамматики

2.1.3.1. Простые предикативные грамматики

2.1.3.2. DCG-нотация и DC-грамматики

2.1.3.3. Структурные предикативные грамматики (СП-грамматики)

2.2. Автоматы

2.2.1. Конечные автоматы и регулярные грамматики.

2.2.1.1. Конечный автомат.

2.2.1.2. Отношения эквивалентности и конечные автоматы.

2.2.1.3. Недетерминированные конечные автоматы.

2.2.1.4. Конечные автоматы и языки типа 3.

2.2.1.5. Свойства языков типа 3.

2.2.1.6. Алгоритмически разрешимые проблемы, касающиеся конечных автоматов.

2.2.2. Магазинные автоматы.

2.2.2.1. Неформальное описание.

2.2.2.2. Формальное определение.

2.2.2.3. Недетерминированные магазинные автоматы и контекстно-свободные языки.

2.2.3. Машины Тьюринга.

2.2.3.1. Неформальное и формальное описания.

2.2.3.2. Машина Тьюринга как процедура.

2.2.3.3. Модификации машин Тьюринга.

2.2.4. Машины Тьюринга: проблема остановки, языки типа 0.

2.2.4.1. Универсальная машина Тьюринга.

2.2.4.2. Неразрешимость проблемы остановки.

2.2.4.3. Класс рекурсивных множеств.

2.2.4.4. Машины Тьюринга и грамматики типа 0.

3. Работа с языками

3.1. Распознаватели.

3.1.1. Нисходящие распознаватели

3.1.1.1. Нисходящие распознаватели и LL(K) - грамматики

3.1.1.2. Разделенные грамматики

3.1.1.3. Построение детерминированного нисходящего распознавателя.

3.1.1.4. Множества выбора.

3.1.1.4.1. Функции ПЕРВ, СЛЕД и ВЫБОР.

3.1.1.4.2. Построение функции ПЕРВ(µ).

3.1.1.4.3. Построение функции СЛЕД(<B>).

3.1.1.4.4. Построение функции ВЫБОР.

3.1.1.5. Слаборазделенные грамматики

3.1.1.6. LL(1) - грамматики.

3.1.1.7. Построение магазинного автомата.

3.1.1.8. Преобразование грамматик к виду LL(1).

3.1.1.8.1. Исключение леворекурсивных правил.

3.1.1.8.2. Выделение общих частей.

3.1.2. Восходящие распознаватели.

3.1.2.1. Расширенный магазинный автомат.

3.1.2.2. Пример работы расширенного автомата.

3.1.2.3. LR(k)-грамматики.

3.1.2.3.1. Построение и работа распознавателя.

3.1.2.3.2. Пример построения LR(0)-распознавателя.

3.1.2.4. SLR(1)-распознаватели и их построение.

3.1.2.5. Восходящие распознаватели для грамматик с аннулирующими правилами.

3.2. Перевод и преобразователи.

3.2.1. Описание перевода или трансляции.

3.2.1.1. Синтаксически - управляемые схемы

3.2.1.2. Перевод, определяемый СУ-схемой.

3.2.1.3. Простая СУ - схема.

3.2.1.4. Построение простой СУ - схемы.

3.2.1.5. Транслирующие грамматики

3.2.1.6. Входная и выходная грамматики заданной транслирующей грамматики.

3.2.1.7. Построение транслирующей грамматики по СУ - схеме

3.2.2. Бесскобочные выражения

3.2.2.1. Префиксная польская запись.

3.2.2.2. Вычисление префиксных польских записей.

3.2.2.3. Постфиксная польская запись.

3.2.2.4. Вычисление постфиксных польских записей.

3.2.2.5. Примеры постфиксных польских записей.

3.2.2.6. Примеры СУ - схем.

3.2.3. Магазинные Преобразователи.

3.2.3.1. Определение магазинного преобразователя.

3.2.3.2. Описание работы магазинного преобразователя.

3.2.3.3. Перевод, определяемый преобразователем.

3.2.3.4. Построение преобразователя.

3.2.3.5. Пример построения детерминированного преобразователя.

3.2.3.6. Порядок построения детерминированного магазинного преобразователя.

3.2.3.7. Построение восходящих преобразователей

3.3. Атрибутные транслирующие грамматики и преобразователи

3.3.1. Атрибутные транслирующие грамматики.

3.3.1.1. Атрибутные транслирующие грамматики.

3.3.1.2. Определение АТ-грамматик

3.3.1.3. Пример АТ-грамматики

3.3.1.4. Демонстрация вычисления значений атрибутов с левым выводом

3.3.1.5. Пример использования АТ-грамматики

3.3.2. Cинтаксический анализ, с использованием АТ-грамматики

3.3.2.1. Процесс синтаксического анализа

3.3.2.2. Пример использования АТ-грамматики.

3.3.3. L - атрибутные транслирующие грамматики

3.3.3.1. L - атрибутные транслирующие грамматики

3.3.3.2. Форма простого присваивания АТ-грамматик

3.3.3.3. Преобразование LАТ-грамматики в LАТ-грамматику

3.3.3.4. Расширенный вывод для АТ-грамматики

3.3.4. Атрибутные преобразователи ( АП )

3.3.4.1. Представление правил LAT-грамматики в магазине

3.3.4.2. Построение инструкций АП

3.3.4.3. Описание работы АП

3.3.4.4. Порядок построения АП

3.3.4.5. Пример построения АП

3.3.4.6. Демонстрация работы АП

3.3.4.7. Построение восходящих атрибутных преобразователей

3.4. Генерация объектного кода

3.4.1. Распределение памяти

3.4.1.1. Общие принципы

3.4.1.2. Распределение базовых регистров

3.4.1.3. Адреса команд блоков

3.4.1.4. Распределение памяти блока

3.4.1.5. Реализация распределения

3.4.2. Адресация

3.4.2.1. Адресация команд

3.4.2.2. Адресация переменных

3.4.2.3. Адресация компоненты переменной

3.4.3. Объектный язык

3.4.3.1. Команды

3.4.4. Проекция

3.4.4.1. Проекция выражений

3.4.4.2. Проекция оператора присваивания

3.4.4.3. Проекция процедур

3.4.5. Особенности интерпретации управляющих структур программы

4. Использование языков

4.1. UML

4.1.1. Введение в процесс моделирования

4.1.1.1. Зачем мы моделируем

4.1.1.2. Введение в язык UML

4.1.1.3. Здравствуй, мир!

4.1.2. Основы структурного моделирования

4.1.2.1. Классы

4.1.2.2. Отношения

4.1.2.3. Общие механизмы

4.1.2.4. Диаграммы

4.1.2.5. Диаграммы классов

4.1.3. Изучение структурного моделирования

4.1.3.1. Углубленное изучение классов

4.1.3.2. Углубленное изучение отношений

4.1.3.3. Интерфейсы, типы и роли

4.1.3.4. Пакеты

4.1.3.5. Экземпляры

4.1.3.6. Диаграммы объектов

4.1.4. Основы моделирования поведения

4.1.4.1. Взаимодействия

4.1.4.2. Прецеденты

4.1.4.3. Диаграммы прецедентов

4.1.4.4. Диаграммы взаимодействий

4.1.4.5. Диаграммы деятельности

4.1.5. Более сложные аспекты поведения

4.1.5.1. События и сигналы

4.1.5.2. Автоматы

4.1.5.3. Процессы и нити

4.1.5.4. Время и пространство

4.1.5.5. Диаграммы состояний

4.1.6. Архитектурное моделирование

4.1.6.1. Компоненты

4.1.6.2. Развертывание

4.1.6.3. Кооперации

4.1.6.4. Образцы и каркасы

4.1.6.5. Диаграммы компонентов

4.1.6.6. Диаграммы развертывания

4.1.6.7. Системы и модели

4.2. GPSS

4.2.1. Общие сведения

4.2.1.1. Введение

4.2.1.2. Модельное время

4.2.1.3. Объекты в GPSS

4.2.1.4. Карты описания. Дополнительные элементы GPSS

4.2.1.5. Карты управления процессом моделирования

4.2.2. Простейшие GPSS - модели

4.2.2.1. Алфавит языка

4.2.2.2. Имена в GPSS

4.2.2.3. Бланк GPSS

4.2.2.4. Создание и ввод транзактов в модель

4.2.2.5. Уничтожение транзактов

4.2.2.6. Задержка транзактов

4.2.2.7. Занятие и освобождение одноканальных приборов

4.2.2.8. Простейшая модель ВС пакетной обработки

4.2.2.9. К вопросу об установившемся режиме работы модели

4.2.2.10. Изменение параметров GPSS-модели

4.2.2.11. Статистический объект GPSS-моделей QUEUE

4.2.2.12. Многоканальное обслуживание

4.2.2.13. Модификация потока транзактов в модели

4.2.2.14. Моделирование замкнутых систем обслуживания

4.2.2.15. Модель работы двух ЭВМ

4.2.2.16. Статистический объект TABLE

4.2.3. Функции и арифметические переменные

4.2.3.1. Детерминированные дискретные функции

4.2.3.2. Вещественные детерминированные функции

4.2.3.3. Датчики равномерного распределения в GPSS

4.2.3.4. Дискретные функции случайного аргумента

4.2.3.5. Использование дискретных функций в блоке ADVANCE

4.2.3.6. Вещественные случайные величины

4.2.3.7. Формирование вещественных случайных значений

4.2.3.8. Арифметические переменные

4.2.4. Аппроксимация непрерывных функций распределения

4.2.4.1. Постановка задачи

4.2.4.2. Простейший способ построения G(Y)

4.2.4.3. Программа аппроксимации на языке БЭЙСИК СМ-1

4.2.4.4. Испытание датчиков непрерывных случайных величин

4.2.4.5. Программа расчета критериев согласия на языке БЭЙСИК СМ ЭВМ

4.2.5. Косвенная адресация и gpss-модели с настраиваемой структурой

4.2.5.1. Понятие косвенной адресации

4.2.5.2. Операционный блок ASSIGN

4.2.5.3. GPSS-модель замкнутой цепи СМО

4.2.5.4. Изменение времени реакции в ВС, представленной как замкнутая СМО

4.2.5.5. Моделирование на GPSS разомкнутых стохастических сетей обслуживания

4.2.6. GPSS - модели сетей эвм

4.2.6.1. Общие положения

4.2.6.2. Простейшие GPSS-модели сетей ЭВМ

4.2.6.3. Матрицы и сохраняемые значения

4.2.6.4. GPSS - модель сети ЭВМ с произвольной топологией

4.3. VHDL

4.3.1. Основы VHDL

4.3.1.1. Мир перед появлением VHDL

4.3.1.2.Наиболее универсальное решение: VHDL

4.3.2. Представление Системы в VHDL: Единицы Проекта

4.3.2.1. Знакомство со Структурой Системы

4.3.2.2. Объект Интерфейса

4.3.2.3. Архитектура Описывает Тело

4.3.2.4. Пакет Поддерживает Другие Проекты

4.3.3. Объекты VHDL: Сигнал

4.3.3.1. Введение в Сигналы

4.3.3.2. Основные Типы Сигналов

4.3.3.3. Объявление Сигналов

4.3.4. Спецификация Интерфейса Системы

4.3.4.1. Заголовок Объекта

4.3.4.2. Предложение порта

4.3.4.3. Предложение Generic

4.3.5. Конструкции VHDL для Описания Поведения Системы

4.3.5.1. Не-логические Типы данных

4.3.5.2. Выражения и Операторы

4.3.5.3. Простое Назначение Сигнала

4.3.5.4. Константы

4.3.6. Описание Поведения при помощи Процессов

4.3.6.1. Введение в Процессы

4.3.6.2. Выполнение Процесса управления

4.3.6.3. Процесс -Specific Объект: Переменная

4.3.6.4. Управление Последовательностью положений

4.3.7. Многократные Процессы в Архитектуре

4.3.7.1. Параллелизм

4.3.7.2. Упрощенные Процессы: Назначение Сигнала

4.3.7.3. Драйвера и Атрибуты Сигнала

4.3.7.4. Разрешение

4.3.8. Определение Структуры Системы

4.3.8.1. Структурные Описания

4.3.8.2. Реализация Прямого Объекта

4.3.8.3. Компоненты и Конфигурации

4.3.9. Испытание Проекта при помощи Испытательного стенда

4.3.9.1. Введение к Испытательным стендам

4.3.9.2. Структура Испытательного стенда

4.4. AHDL

4.4.1. Введение

4.4.2. Как пользоваться языком AHDL

4.4.2.1. Вставка шаблонов AHDL

4.4.2.2. Создание текстового выходного файла

4.4.2.3. Использование чисел

4.4.2.4. Использование констант и оценочных функций

4.4.2.5. Комбинаторная логика

4.4.2.6. Последовательностная логика

4.4.2.7. Конечные автоматы

4.4.2.8. Реализация иерархических проектов

4.4.2.9. Реализация LCELL & SOFT примитивов

4.4.2.10. Реализация RAM & ROM

4.4.2.11. Использование итеративно-генерируемой логики

4.4.2.12. Использование условно-генерируемой логики

4.4.2.13. Использование оператора Assert

4.4.3. Элементы

4.4.3.1. Зарезервированные слова

4.4.3.2. Зарезервированные идентификаторы

4.4.3.3. Символы

4.4.3.4. Строковые и символьные имена

4.4.3.5. Шины

4.4.3.6. Числа в AHDL

4.4.3.7. Арифметические выражения

4.4.3.8. Встроенные оценочные функции

4.4.3.9. Булевы выражения

4.4.3.10. Логические функции

4.4.3.11. Порты

4.4.4. Структура проекта.

4.4.4.1. Обзор

4.4.4.2. Оператор Title

4.4.4.3. Оператор Parameters

4.4.4.4. Оператор Include

4.4.4.5. Оператор Constant

4.4.4.6. Оператор Define

4.4.4.7. Оператор Function Prototype.

4.4.4.8. Оператор Options

4.4.4.9. Оператор Assert

4.4.4.10. Раздел Subdesign

4.4.4.11. Раздел Variable

4.4.4.12. Раздел Logic

4.5. SQL

4.5.1. Язык SQL. Функции и основные возможности

4.5.1.1. SEQUEL/SQL СУБД System R

4.5.1.1.1. Запросы и операторы манипулирования данными

4.5.1.1.2. Операторы определения и манипулирования схемой БД

4.5.1.1.3. Определения ограничений целостности и триггеров

4.5.1.1.4. Представления базы данных

4.5.1.1.5. Определение управляющих структур

4.5.1.1.6. Авторизация доступа к отношениям и их полям

4.5.1.1.7. Точки сохранения и откаты транзакции

4.5.1.1.8. Встроенный SQL

4.5.1.1.9. Динамический SQL

4.5.1.2. Язык SQL в коммерческих реализациях

4.5.1.3. Стандартизация SQL

4.5.2. Стандартный язык баз данных SQL

4.5.2.1. Типы данных

4.5.2.2. Средства определения схемы

4.5.2.2.1. Оператор определения схемы

4.5.2.2.2. Определение таблицы

4.5.2.2.3. Определение столбца

4.5.2.2.4. Определение ограничений целостности таблицы

4.5.2.2.5. Определение представлений

4.5.2.2.6. Определение привилегий

4.5.3. Язык SQL. Средства манипулирования данными

4.5.3.1. Структура запросов

4.5.3.1.1. Спецификация курсора

4.5.3.1.2. Оператор выборки

4.5.3.1.3. Подзапрос

4.5.3.2. Табличное выражение

4.5.3.2.1. Раздел FROM

4.5.3.2.2. Раздел WHERE

4.5.3.2.3. Раздел GROUP BY

4.5.3.2.4. Раздел HAVING

4.5.3.3. Агрегатные функции и результаты запросов

4.5.3.3.1. Семантика агрегатных функций

4.5.3.3.2. Результаты запросов

4.5.4. Использование SQL при прикладном программировании

4.5.4.1. Язык модулей или встроенный SQL?

4.5.4.2. Язык модулей

4.5.4.2.1. Определение процедуры

4.5.4.3. Встроенный SQL

4.5.4.4. Набор операторов манипулирования данными

4.5.4.4.1. Операторы, связанные с курсором

4.5.4.4.2. Одиночные операторы манипулирования данными

4.5.4.5. Динамический SQL в Oracle V.6

4.5.4.5.1. Оператор подготовки

4.5.4.5.2. Оператор получения описания подготовленного оператора

4.5.4.5.3. Оператор выполнения подготовленного оператора

4.5.4.5.4. Работа с динамическими операторами SQL через курсоры

4.5.5. Некоторые черты SQL/92 и SQL-3

4.5.5.1. Оператор выделения памяти под дескриптор

4.5.5.2. Оператор освобождения памяти из-под дескриптора

4.5.5.3. Оператор получения информации из области дескриптора SQL

4.5.5.4. Оператор установки дескриптора

4.5.5.5. Оператор подготовки

4.5.5.6. Оператор отказа от подготовленного оператора

4.5.5.7. Оператор запроса описания подготовленного оператора

4.5.5.8. Оператор выполнения подготовленного оператора

4.5.5.9. Оператор подготовки с немедленным выполнением

4.5.5.10. Оператор объявления курсора над

4.5.5.11. Оператор определения курсора над оператором выборки

4.5.5.12. Оператор открытия курсора

4.5.5.13. Оператор чтения строки по курсору

4.5.5.14. Оператор закрытия курсора

4.5.5.15. Оператор позиционного удаления по курсору

4.5.5.16. Оператор позиционной модификации по курсору

4.5.5.17. Подготавливаемый оператор позиционного удаления

4.5.5.18. Подготавливаемый оператор позиционной модификации

4.5.5.19. Сводка новых возможностей SQL-3

4.5.5.19.1. Типы данных

4.5.5.19.2. Некоторые другие свойства SQL-3

4.5.6. Компиляторы SQL. Проблемы оптимизации

4.5.6.1. Общая схема обработки запроса

4.5.6.2. Синтаксическая оптимизация запросов

4.5.6.2.1. Простые логические преобразования запросов

4.5.6.2.2. Преобразования запросов с изменением порядка реляционных операций

4.5.6.2.3. Приведение запросов со вложенными подзапросами

4.5.6.3. Семантическая оптимизация запросов

4.5.6.3.1. Преобразования запросов на основе семантической информации

4.5.6.3.2. Использование семантической информации при оптимизации запросов

4.5.6.4. Выбор и оценка альтернативных планов выполнения запросов

4.5.6.4.1. Генерация планов

4.5.6.4.2. Оценка стоимости плана запроса

4.5.6.4.3. Более точные оценки