Двухтомник финских специалистов, содержащий введение в язык Лисп, методы и системы программирования. Этот язык широко известен и применяется в задачах символьной обработки информации, обработки естественных языков, искусственного интеллекта, экспертных систем, систем логического программирования. Изложение языка и примеры основаны на последней версии, которая станет стандартом языка. В книге приведены конкретные задачи с ответами и решениями. Во 2-м томе изложены методы и системы программирования.
Для программистов разной квалификации, для всех, использующих язык Лисп.
Author(s): Эро Хювёнен, Йоуко Сеппянен
Publisher: Мир
Year: 1990
Language: Russian
Pages: 319
City: Москва
Tags: lisp
Обложка
Титульная страница [стр. 3]
Выходные сведения [стр. 4]
Введение [стр. 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]
Литература [стр. 103]
2.6 Объектное программирование [стр. 105]
Объектное мышление и объектное программирование [стр. 106]
Объект, класс объектов и метакласс [стр. 107]
Объект содержит данные и действия [стр. 107]
Свойства и состояние объекта [стр. 108]
Действия или методы объекта [стр. 108]
Сообщения управляют вычислением [стр. 109]
Подкласс и надкласс [стр. 111]
Естественный класс и качественный класс [стр. 111]
Иерархия классов и механизм наследования [стр. 112]
Порядок наследования в иерархии классов [стр. 113]
Композиция методов в вычислениях [стр. 115]
Базовые классы и метаклассы системы [стр. 117]
Пример системы — Flavors [стр. 117]
DEFFLAVOR определяет класс [стр. 117]
MAKE-INSTANCE создает новый объект [стр. 118]
DEFMETHOD определяет метод [стр. 119]
SEND посылает сообщение [стр. 120]
Объекты моделируют мир проблемы [стр. 122]
Применимость объектного программирования [стр. 122]
Развитие объектного мышления и программирования [стр. 123]
Литература [стр. 126]
2.7 Достоинства и качество программирования [стр. 128]
Факторы качества и подходы к программированию [стр. 129]
Разделяй и именуй объекты естественным образом [стр. 132]
Используй хорошо определенные соединения [стр. 133]
Переносимость и стандартизация [стр. 134]
Другие советы [стр. 134]
Литература [стр. 136]
3. Средства и среда программирования [стр. 137]
3.1 Первичная среда Коммон Лиспа [стр. 138]
Аппаратная среда реализаций языка [стр. 138]
Составные части среды программирования на Лиспе [стр. 139]
Интегрированность и прозрачность [стр. 141]
Редактирование программ: ED [стр. 142]
Тестирование программ: TRACE и STEP [стр. 143]
Прерывание вычислений: BREAK и ERROR [стр. 144]
Трансляция программ: COMPILE [стр. 146]
Система документирования и справочная система [стр. 146]
Комментарии [стр. 149]
Средства определения количественных характеристик вычислений [стр. 150]
3.2 Среда Интерлиспа [стр. 151]
Списочный редактор — List Editor [стр. 152]
Ассистент программиста — Programmer’s Assistant [стр. 154]
Структурная печать — Prettyprint [стр. 155]
Прерывания — Break Package [стр. 156]
Прерывание вычислений и трассировка [стр. 157]
Работа с файлами — File Package [стр. 157]
Транслятор — Compiler [стр. 158]
Анализатор программы — Masterscope [стр. 158]
Справочная система — Help System [стр. 159]
Исправление ошибок — Do What I Mean [стр. 159]
Лисп с фразовой структурой — Conversational Lisp [стр. 161]
Оконная система — Window System [стр. 161]
Целостность системы — System Integration [стр. 162]
Библиотека программ — Lispusers Package [стр. 162]
Литература [стр. 163]
3.3 Среда Зеталиспа [стр. 164]
Объектная система Flavor [стр. 165]
Макрос итерации Loop [стр. 165]
Интерфейс пользователя [стр. 166]
Оконная система [стр. 166]
Интегрированные средства разработки [стр. 167]
Экранный редактор Zmacs [стр. 168]
Инспектор структур Inspector [стр. 169]
Отладчик программ Debugger [стр. 169]
Управление файлами [стр. 170]
Инспектор состояния Реек [стр. 170]
Zmail и работа в сети [стр. 170]
Языки и инструменты [стр. 170]
Литература [стр. 171]
4 Примеры программ [стр. 172]
4.1 Лисп на Лиспе [стр. 174]
Интерпретатор Лиспа на Лиспе [стр. 174]
Примитивы интерпретатора [стр. 175]
Универсальная функция EVAL1 [стр. 176]
Основная часть интерпретатора: APPLY1 [стр. 178]
Примеры вычислений [стр. 181]
Печать результатов — структурная печать [стр. 183]
Программирование диалога [стр. 184]
Программирование ввода и вывода [стр. 185]
Литература [стр. 188]
4.2 Миксима [стр. 189]
Миксима — символьный вычислитель [стр. 189]
Действия и их порядок [стр. 190]
Чтение выражения с преобразованием в списочную форму [стр. 191]
Преобразование выражения в форму дерева [стр. 192]
Представление выражения в форме дерева [стр. 194]
Порядок обхода дерева [стр. 196]
Интерпретация и вычисление выражений [стр. 197]
Упрощение выражений [стр. 199]
Снятие скобок и вывод [стр. 200]
Диалог с Миксимой [стр. 201]
Литература [стр. 202]
4.3 Язык сплетника [стр. 203]
Исчезающие народные традиции [стр. 204]
Язык сплетника и цыганский жаргон [стр. 204]
Анализ правил и их программирование [стр. 205]
Выбор места разбиения слова на части [стр. 206]
Перевод слова и ключа [стр. 209]
Долгота и созвучие гласных [стр. 209]
Перевод слов и предложений [стр. 212]
Расширение до цыганского жаргона [стр. 214]
Литература [стр. 215]
4.4 Дарвин [стр. 217]
Структура экспертной системы [стр. 218]
Представление знаний [стр. 218]
Машина вывода [стр. 219]
Факты и правила [стр. 219]
Правила вывода базы знаний [стр. 221]
Стратегия обратного вывода [стр. 225]
Работа системы Дарвин [стр. 226]
Примеры запросов [стр. 230]
Расширение системы Дарвин [стр. 231]
Литература [стр. 232]
4.5 Солнечная система [стр. 233]
Сначала были созданы небо и Земля [стр. 234]
Окно в космос [стр. 234]
Солнце, планеты и спутники [стр. 235]
И все-таки она вертится [стр. 236]
Вращением спутника управляет демон [стр. 237]
Создание небесных тел [стр. 238]
Запуск Солнечной системы [стр. 240]
Литература [стр. 240]
5 Развитие языка Лисп и Лисп-систем [стр. 242]
5.1 История Лиспа [стр. 243]
Отец Лиспа — Джон Маккарти [стр. 243]
Обработка списков и искусственный интеллект [стр. 244]
Значение Лиспа [стр. 245]
Ранние реализации Лиспа [стр. 247]
Литература [стр. 248]
5.2 Лисп распространяется по свету [стр. 250]
Развитие Лиспа в других странах [стр. 250]
Лисп в Западной Европе [стр. 250]
Лисп в Восточной Европе [стр. 254]
Лисп в далеких странах [стр. 256]
Лисп в Скандинавии [стр. 258]
Лисп в Финляндии [стр. 260]
Литература [стр. 265]
5.3 Лисп-системы [стр. 272]
Маклисп — основной диалект восточного побережья [стр. 272]
BBN-Lisp, Xerox и Интерлисп [стр. 274]
Standard Lisp и PSL [стр. 277]
Franz Lisp [стр. 279]
NIL — New Implementation of Lisp (новая реализация языка) [стр. 280]
Диалект T Йельского университета [стр. 280]
Зеталисп Лисп-машин [стр. 282]
Вавилонская башня мира Лиспа [стр. 282]
Стандарт Коммон Лиспа [стр. 284]
Производители Лисп-машин приходят к договоренности [стр. 287]
Литература [стр. 288]
5.4 Лисп-машины [стр. 291]
Бегство из систем разделения времени [стр. 291]
Первые изготовители [стр. 292]
Успехи Лисп-машин [стр. 293]
Лисп или Пролог? [стр. 294]
Литература [стр. 294]
Приложение 1. Указатель функций и символов [стр. 297]
Приложение 2. Указатель имен и сокращений [стр. 301]
Приложение 3. Предметный указатель [стр. 309]
Оглавление [стр. 313]
Содержание первого тома [стр. 319]
Выпускные данные [стр. 320]
Обложка