Хювенен - Мир лиспа. Том 2
Э.Хювёнен, И.Сеппянен
МИР ЛИСПА, Т,2: МЕТОДЫ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
Двухтомник финских специалистов, содержащий введение в язык Лисп, методы и системы программирования. Этот язык широко известен и применяется в задачах символьной обработки информации, обработки естественных языков, искусственного интеллекта, экспертных систем, систем логического программирования. Изложение языка и примеры основаны на последней версии, которая станет стандартом языка. В книге приведены конкретные задачи с ответами и решениями. Во 2-м томе изложены методы и системы программирования.
Для программистов разной квалификации, для всех, использующих язык Лисп.
Содержание
ВВЕДЕНИЕ 5
Скачок в развитии вычислительной техники 5
Лисп - основа искусственного интеллекта 6
Учебник Лиспа на финском языке 6
Язык Лисп и функциональное программирование 6
Методы программирования 7
Среда программирования 9
Примеры программ 9
Развитие Лисп-культуры и Лисп-систем 10
На кого расчитапа книга 10
Терминология 10
Иконология 11
Благодарности 13
1 ВВЕДЕНИЕ В МЕТОДЫ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ 14
Основные тины знаний 15
Методы представления знаний 16
Процедурные и декларативные знания 18
Способы решения проблем 20
Лисп предлагает различные модели 21
Методы и стиль программирования 21
Парадигмы программирования 22
Литература 24
2 МЕТОДЫ ПРОГРАММИРОВАНИЯ 25
2.1 ОПЕРАТОРНОЕ ПРОГРАММИРОВАНИЕ 26
Функциональное программирование 26
Операторное и процедурное программирование 27
Рекурсия или итерация 28
Рекурсивное операторное программирование 31
Фразовое программирование 35
Макропрограммирование 37
Литература 38
2.2 ПРОГРАММИРОВАНИЕ, УПРАВЛЯЕМОЕ ДАННЫМИ 40
Принцип программирования, управляемого данными 40
Универсальное программирование 41
Дифференцирование выражений 42
Язык представления электрических схем 47
Другие методы программирования, управляемого данными 51
Программирование, управляемое событиями 52
Литература 53
2.3 СОПОСТАВЛЕНИЕ С ОБРАЗЦОМ 54
Сопоставление с образцом и распознавание образов 54
распознавание списочных образов 55
Условия сопоставимости 55
Использование переменных в образце 58
Сопоставление с переменной образца 61
Предикатный образец ограничивает сопоставимость 62
Компьютерный психиатр ELIZA 63
Распознавание структур 66
Литература 67
2.4 ПРОДУКЦИОННОЕ ПРОГРАММИРОВАНИЕ 69
Продукция = условие + следствие 69
Интерпретатор продукций применяет продукции 70
Полный перебор 71
Аннулирование выбора 72
Направление поиска 72
Порядок перебора альтернатив 73
Программирование методов поиска 74
Поиск в глубину, в ширину и но наилучшему варианту 77
Применения продукционного программирования 79
Литература 80
2.5 ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 82
Декларативная программа пе содержит алгоритма 83
Процедурная семантика 83
Отношение является обобщением функции 84
Унификация структур 85
Алгоритм унификации 87
Логика хорновских предложений 89
Логическая интерпретация хорновских предложений 90
Логическое определение отношений 91
Множество предложений трактуется как программа 93
Метод резолюций 94
Алгоритм доказательства 96
Реализация интерпретатора 97
Пролог использует поиск в глубину 100
Развитие логического программирования 101
Литература
2.6 ОБЪЕКТНОЕ ПРОГРАММИРОВАНИЕ
Объектное мышление и объектное программирование
Объект, класс объектов и метакласс
Объект содержит данные и действия
Свойства и состояние объекта
Действия или методы объекта
Сообщения управляют вычислением
Подкласс и надкласс
Естественный класс и качественный класс
Иерархия классов и механизм наследования
Порядок наследования в иерархии классов
Композиция методов в вычислениях
Базовые классы и метаклассы системы
Пример системы - Flavors
DEFFLAVOR определяет класс
MAKE-INSTANCE создает новый объект
DEFMETHOD определяет метод
SEND посылает сообщение
Объекты моделируют мир проблемы
Применимость объектного программирования
Развитие объектного мышления и программирования
Литература
2.7 ДОСТОИНСТВА И КАЧЕСТВО ПРОГРАММИРОВАНИЯ
Факторы качества и подходы к программированию
Разделяй и именуй объекты естественным образом
Используй хорошо определенные соединения
Переносимость и стандартизация
Другие советы
Литература
3. СРЕДСТВА И СРЕДА ПРОГРАММИРОВАНИЯ
3.1 ПЕРВИЧНАЯ СРЕДА КОММОН ЛИСПА
Аппаратная среда реализаций языка
Составные части среды программирования на Лиспе
Интегрированность и прозрачность
Редактирование программ: ED
Тестирование программ: TRACE и STEP
Прерывание вычислений: BREAK и ERROR
Трансляция программ: COMPILE
Система документирования и справочная система
Комментарии
Средства определения количественных характеристик вычислений
3.2 СРЕДА ИНТЕРЛИСПА
Списочный редактор - List Editor
Ассистент программиста - Programmer's Assistant
Структурная печать - Prettyprint
Прерывания - Break Package
Прерывание вычислений и трассировка
Работа с файлами - File Package
Транслятор - Compiler
Анализатор программы - Masterscope
Справочная система - Help System
Исправление ошибок - Do What I Mean
Лисп с фразовой структурой - Conversational Lisp
Оконная система - Window System
Целостность системы - System Integration
Библиотека программ - Lispusers Package
Литература
3.3 СРЕДА ЗЕТАЛИСПА
Объектная система Flavor
Макрос итерации Loop
Интерфейс пользователя
Оконная система
Интегрированные средства разработки
Экранный редактор Zmacs
Инспектор структур Inspector
Отладчик программ Debugger
Управление файлами
Инспектор состояния Реек
Zmail и работа в сети
Языки и инструменты
Литература
4 ПРИМЕРЫ ПРОГРАММ
4.1 ЛИСП НА ЛИСПЕ
Интерпретатор Лиспа па Лиспе
Примитивы интерпретатора
Универсальная функция EVAL1
Основная часть интерпретатора: APPLY 1
Примеры вычислений
Печать результатов - структурная печать
Программирование диалога
Программирование ввода и вывода
Литература
4.2 МИКСИМА
Миксима - символьный вычислитель
Действия и их порядок
Чтение выражения с преобразованием в списочную форму
Преобразование выражения в форму дерева
Представление выражения в форме дерева
Порядок обхода дерева
Интерпретация и вычисление выражений
Упрощение выражений
Снятие скобок и вывод
Диалог с Миксимой
Литература
4.3 ЯЗЫК СПЛЕТНИКА
Исчезающие народные традиции
Язык сплетника и цыганский жаргон
Анализ правил и их программирование
Выбор места разбиения слова на части
Перевод слова и ключа
Долгота и созвучие гласных
Перевод слов и предложений
Расширение до цыганского жаргона
Литература
4.4 ДАРВИН
Структура экспертной системы
Представление знаний
Машина вывода
Факты и правила
Правила вывода базы знаний
Стратегия обратного вывода
Работа системы Дарвин
Примеры запросов
Расширение системы Дарвин
Литература
4.5 СОЛНЕЧНАЯ СИСТЕМА
Сначала были созданы небо и Земля
Окно в космос
Солнце, планеты и спутники
И все-таки она вертится
Вращением спутника управляет демон
Создание небесных тел
Запуск Солнечной системы
Литература
5 РАЗВИТИЕ ЯЗЫКА ЛИСП И ЛИСП- СИСТЕМ
5.1 ИСТОРИЯ ЛИСПА
Отец Лиспа - Джои Маккарти
Обработка списков и искусственный интеллект
Значение Лиспа
Ранние реализации Лиспа
Литература
5.2 ЛИСП РАСПРОСТРАНЯЕТСЯ ПО СВЕТУ
Развитие Лиспа в других странах
Лисп в Западной Европе
Лисп в Восточной Европе
Лисп в далеких странах
Лисп в Скандинавии
Лисп в Финляндии
Литература
5.3 ЛИСП-СИСТЕМЫ
Маклисп - основной диалект восточного побережья
BBN-Lisp, Xerox и Интерлисп
Standard Lisp и PSL
Franz Lisp
NIL - New Implementation of Lisp (новая реализация языка)
Диалект Т Йельского университета
Зеталисп Лисп-машин
Вавилонская башня мира Лиспа
Стандарт Коммон Лиспа
Производители Лисп-машип приходят к договоренности
Литература
5.4 ЛИСП-МАШИНЫ
Бегство из систем разделения времени
Первые изготовители
Успехи Лисп-машин
Лисп или Пролог?
Литература
ПРИЛОЖЕНИЕ 1 Указатель функций и символов
ПРИЛОЖЕНИЕ 2 Указатель имен и сокращений
ПРИЛОЖЕНИЕ 3 Предметный указатель