Оглавление

Предисловие научного редактора 3

Предисловие автора 5

ЧАСТЬ I. ФУНКЦИОНАЛЬНЫЙ ПОДХОД
К ПРОГРАММИРОВАНИЮ 8

Глава 1. МЕСТО ФУНКЦИОНАЛЬНОГО ПОДХОДА
И MICROSOFT .NET В СЕМЕЙСТВЕ ЯЗЫКОВ И ПОДХОДОВ К ПРОГРАММИРОВАНИЮ 8
Раздел 1. Классификация языков программирования 8
Раздел 2. Концепция и возможности подхода .NET 17
Раздел 3. Функциональный подход к программированию 26

Глава 2. ФОРМАЛЬНЫЕ СИСТЕМЫ, ПОДДЕРЖИВАЮЩИЕ ФУНКЦИОНАЛЬНЫЙ ПОДХОД 37
Раздел 1. Лямбда-исчисление как формализация языка функционального программирования 37
Раздел 2. Комбинаторная логика как формальная система 44
Раздел 3. Теория типов и ее моделирование средствами комбинаторной логики 53

Глава 3. СИНТАКСИС И СЕМАНТИКА ФУНКЦИОНАЛЬНЫХ ПРОГРАММ 66
Раздел 1. Синтаксис языков программирования 66
Раздел 2. Семантика языков программирования 77

Глава 4. РЕКУРСИЯ И МОДЕЛИРОВАНИЕ СРЕДЫ ВЫЧИСЛЕНИЙ 88
Раздел 1. Рекурсивные функции и множества 88
Раздел 2. Абстрактные машины и категориальная
комбинаторная логика 97
Раздел 3. Категориальная абстрактная машина 106
Раздел 4. Оптимизация вычислений в абстрактных машинах 117
Итоговое задание к ч. I 127
Практикум по гетерогенному программированию
в среде Microsoft .NET 137
Раздел 1. Функциональное программирование и computer science 137
Введение 137
Процедура установки компилятора SML.NET 137
Лабораторная работа 1. Базисные типы и стандартные функции языка SML 139
Лабораторная работа 2. Функции SML для основных комбинаторов 156
Лабораторная работа 3. Рекурсивные вычисления 188
Лабораторная работа 4. Функции для синтаксического
разбора простых языковых конструкций 204
Лабораторная работа 5. Реализация категориальной
абстрактной машины 239
Список литературы и учебных материалов 249
Приложение. Особенности инсталляции интегрированной
среды разработки Visual Studio .NET 250

ЧАСТЬ II. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД
И ЕГО РАСШИРЕНИЯ 251

Глава 5. ОСНОВЫ ЯЗЫКОВОЙ И ПРОГРАММНОЙ СРЕДЫ 251
Раздел 1. Введение в объектно-ориентированный подход к программированию 251
Раздел 2. Среда Microsoft .NET и ее использование
для гетерогенного программирования 263
Раздел 3. Основы объектно-ориентированного
программирования на языке C# 274

Глава 6. КОНЦЕПТУАЛЬНЫЕ ОСНОВЫ И СЕМАНТИКА
ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА 289
Раздел 1. Семантика основных конструкций языка
программирования C# 289
Раздел 2. Основные понятия объектно-ориентированного
подхода: объекты, классы и методы 299

Глава 7. ДИСЦИПЛИНА ТИПОВ И ВАЖНЕЙШИЕ КОНЦЕПЦИИ ГЕТЕРОГЕННОЙ СРЕДЫ ВЫЧИСЛЕНИЙ 311
Раздел 1. Теория типов и типизация в .NET 311
Раздел 2. Концепция наследования и ее реализация в языке C# 325
Раздел 3. Концепция инкапсуляции и ее реализация в языке C# 336
Раздел 4. Концепция полиморфизма и ее реализация в языке C# 346

Глава 8. РАСШИРЕНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА 357
Раздел 1. Расширенные возможности полиморфизма
в языке C# 357
Раздел 2. Событийно-управляемое программирование
в среде .NET 373
Раздел 3. Компонентное программирование в .NET 388
Практикум по гетерогенному программированию
в среде Microsoft .NET 402
Объектно-ориентированное программирование
и его расширения 402
Введение 402
Необходимое программное обеспечение 402
Лабораторная работа 1. Разработка элементарных
программ на языке программирования C# 403
Лабораторная работа 2. Объекты и классы (наследование, конструкторы, деструкторы) 409
Лабораторная работа 3. Полиморфные методы 414
Лабораторная работа 4. Расширенные возможности языка программирования C# 419
Лабораторная работа 5. Событийно-ориентированное программирование 423
Лабораторная работа 6. Проектирование и реализация гетерогенных приложений 430
Список литературы и учебных материалов 435
Список учебной литературы 435
Список использованной литературы 435
Интернет-источники 439