910
ОГЛАВЛЕНИЕ
9.1.3. Операции над вновь определяемыми типами данных . 488
9.1.4. Типизация и стили . . . . . . . . . . . . . . . . . . . . 493
9.1.5. Абстрактные типы данных . . . . . . . . . . . . . . . . 494
9.2. Базовые и выводимые типы . . . . . . . . . . . . . . . . . . . . 499
9.2.1. Перечисления . . . . . . . . . . . . . . . . . . . . . . . 499
9.2.2. Булевский тип . . . . . . . . . . . . . . . . . . . . . . . 501
9.2.3. Тип литерных . . . . . . . . . . . . . . . . . . . . . . . 501
9.2.4. Тип целых . . . . . . . . . . . . . . . . . . . . . . . . . 502
9.2.5. Вещественные типы . . . . . . . . . . . . . . . . . . . 504
9.3. Структурные типы . . . . . . . . . . . . . . . . . . . . . . . . . 508
9.3.1. Наборы компонент . . . . . . . . . . . . . . . . . . . . 510
9.3.2. Записи . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
9.3.3. Объединения . . . . . . . . . . . . . . . . . . . . . . . . 519
9.3.4. Массивы . . . . . . . . . . . . . . . . . . . . . . . . . . 524
9.3.5. Множества . . . . . . . . . . . . . . . . . . . . . . . . . 534
9.4. Рекурсивные структуры данных . . . . . . . . . . . . . . . . . 541
9.4.1. Списочные структуры . . . . . . . . . . . . . . . . . . 544
9.4.2. Указательные типы . . . . . . . . . . . . . . . . . . . . 547
9.4.3. Специальные рекурсивные структуры . . . . . . . . . . 550
9.4.4. Деревья . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
III Методы программирования 555
10. Методы программирования от состояний 560
10.1. Основные структуры программирования от состояний . . . . 561
10.2. Задача подсчета длин слов текста и задание конечного автомата561
10.2.1. Постановка задачи и первичный анализ . . . . . . . . . 561
10.2.2. Построение графа состояний . . . . . . . . . . . . . . . 563
10.2.3. Табличное представление графа состояний конечного
автомата . . . . . . . . . . . . . . . . . . . . . . . . . . 567
10.2.4. Ручная трансляция диаграмм переходов . . . . . . . . 572
10.2.5. Представления, ориентированные на автоматические
преобразования диаграмм переходов . . . . . . . . . . 579
10.2.6. Обсуждение решения . . . . . . . . . . . . . . . . . . . 588
10.3. Синтаксические таблицы . . . . . . . . . . . . . . . . . . . . . 593
10.3.1. Расширение сферы применения конечных автоматов:
анализатор как система связанных конечных автоматов 593