Хювенен - Мир лиспа. Том 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 Предметный указатель

...


Архивариус Бизнес-планы Типовые серии Норм. документы Литература Технол. карты Программы Серии в DWG, XLS