|
|
|
|
Благодарности
Здесь автор пользуется приятной возможностью поблагодарить
всех, кто поддерживал его во время разработки программы, а также написания документации.
|
|
|
|
|
О программе
В этом разделе рассказывается о том, что послужило прототипом и основой представляемой
программы, раскрывается мотивация разработчика, описываются условия, на которых программа передается пользователям.
Этот небольшой раздел следует прочитать до конца!
|
|
|
|
|
Установка и удаление
Здесь описывается процедура инсталляции и деинсталляции программы.
Кроме того, приводится список стандартных компонентов Microsoft, которые используются программой; описываются
директории, которые создаются в процессе инсталляции. Приводится список файлов, входящих в инсталляцию.
|
|
|
|
|
Рабочая среда
А в этом разделе рассказывается, как запустить и остановить программу и
приводится описание всех органов управления программой - главного меню, панели инструментов, статусной строки и контекстных меню.
|
|
|
|
|
Конфигурация
В этом разделе подробно описана структура конфигурационных
файлов HomeLisp, а также режим конфигурирования среды разработки и библиотеки
HomeLispLib.Exe. Конфигурирование Web-компоненты рассматривается в разделе, целиком
посвященном Web-компоненте.
|
|
|
|
|
Ввод S-выражений
Самое главное, что должен знать пользователь любой Лисп-системы,
это правила ввода S-выражений. В этом разделе разъясняется, как вводить S-выражения в системе HomeLisp;
показывается, как контролировать баланс скобок, как пользоваться стеком введенных команд.
|
|
|
|
|
Шаблоны стандартных конструкций
Первым препятствием для изучающих Лисп обычно является запоминание синтаксиса
основных конструкций Лиспа (COND, DEFUN, PROG и др). В разделе 5 описываются правила использования
стандартных шаблонов. Приводится содержательный пример их использования и объясняется, как создавать свои шаблоны.
|
|
|
|
|
Просмотр списка объектов и ассоциативного списка
Важнейшими внутренними структурами в любой реализации Лиспа являются список объектов -
собрание всех атомов системы и ассоциативный список - собрание всех переменных системы. В этом разделе показывается, как пользователь
может во время работы просматривать оба списка.
|
|
|
|
|
Работа с дампами
Дампированием процесса вычисления - это занесение в текстовый
файл всех этапов вычисления S-выражения. По содержанию дамп-файла удобно анализировать процесс
вычисления и искать ошибки. Рассказывается, как включать и выключать дампирование и как просматривать
полученные дампы без выхода из среды разработки.
|
|
|
|
|
Менеджер графических окон
Здесь рассказывается о том, как управлять отображением, скрытием
и уничтожением графических окон HomeLisp. Оконный менеджер доступен при работе в среде разработки
(IDE), а также при выполнении exe-файлов, сгенерированных с диспетчерской формой.
|
|
|
|
|
Общие сведения о входном языке HomeLisp
Приступая к изучению любого языка программирования, начинать следует с основ - с алфавита,
правил записи имен и выражений, встроенных типов данных. Все эти сведения и собраны в этом разделе. Хотя Лисп предполагает действия над числами двух типов (целых и вещественных), его арифметика весьма своеобразна. В этом разделе приводятся начальные сведения об арифметике
Лиспа, рассказывается, как ведут себя арифметические функции Лиспа при задании аргументов различных типов. Описываются и другие типы данных - битовые шкалы, строки и большие
двоичные объекты (BLOBы).
|
|
|
|
|
Предопределенные атомы
Атом - основная единица информации в Лиспе. Предопределенные атомы -
это математические константы; константы, описывающие методы доступа к файлам, цвета и др.
Раздел содержит список этих констант с их значениями и областью применения.
|
|
|
|
|
Встроенные функции стандартного Лиспа
Здесь приведено подробное, с примерами, описание
встроенных функций стандартного Лиспа: функции действия со списками, элементарные арифметические, функции работы со списком свойств и уборки мусора.
Описание каждой функции, кроме совсем элементарных, сопровождается примерами.
|
|
|
|
|
Функции управления средой
В этом небольшом разделе описываются функции, управляющие поведением
среды разработки: включения-выключения эха, дампирования, статистики, журналирования).
|
|
|
|
|
Графические функции
HomeLisp включает небольшой набор графических функций (26 штук), позволяющих
рисовать простейшие объекты, выводить текст, сохранять графическое изображение в файлах и загружать
изображение из файла. Поддерживается также и "черепашья" графика. Графическая подсистема позволяет управлять
многими графическими окнами. Описание этих возможностей (с примерами и картинками) читатель найдет в этом разделе.
|
|
|
|
|
Действия с файлами
Полноценное программирование немыслимо без использования файлов. Для работы с файлами
HomeLisp включает функции, позволяющие работать как с текстовыми, так и с двоичными файлами.
В дополнение к стандартным методам доступа, описан метод, позволяющий читать входной текстовый
файл, как массив строк (в произвольном порядке).
|
|
|
|
|
Действия с большими двоичными объектами
Кроме действия с объектами, традиционными для Лиспа, HomeLisp позволяет работать с блоками байтов
произвольой длины. Такие объекты традиционно называются BLOB-ами (сокращение от английского binary
large objects). HomeLisp позволяет создавать BLOB-ы, загружать в них информацию (как программно,
так и из файлов), писать BLOB-ы на диск и т.д.
|
|
|
|
|
Системные функции
В этом разделе описывается библиотека системных функций: копирование, перемещение, удаление файлов;
сведения о системных ресурсах; версия ОС; системные диалоги - всего более тридцати функций. Использование этих
функций позволит пользователю комфортно чувствовать себя в среде Windows.
|
|
|
|
|
Строковые функции
Строки являются важнейшими объектами в современых языках программирования. В этом разделе описывается
скромная библиотека функций работы со строками. Эти функции позволяют делать над строками типовые
действия: выделение подстрок, замена, поиск подстрок, перевод из регистра в регистр и т.п.
|
|
|
|
|
Действия с реестром
Реестр Windows хранит большинство системных надстроек операционной системы. Современное средство
разработки должно представлять пользователю возможность работы с реестром. В HomeLisp-е имеется
всего девять встроенных функций манипулирования реестром. Однако эти функции обеспечивают большинство
необходимых возможностей.
|
|
|
|
|
Действия с COM-объектами
Полноценная работа в среде Windows немыслима без технологии COM. В этом разделе описывается
небольшая библиотека встроенных функций HomeLisp-а, позволяющая создавать COM-объекты, вызывать
их методы и использовать их свойства.
|
|
|
|
|
Организация диалогов
Функции, описываемые в этом разделе, служат для организации диалоговых программ использующих
стандартный графический интерфейс Windows. Это означает, что HomeLisp позволяет писать
нормальные Windows-приложения (а не консольные приложения, как большинство некоммерческих версий Лиспа).
|
|
|
|
|
Математические функции
Графика и вычисления требуют поддержки элементарных математических функций (экспонента, логарифм,
тригонометрические функции и т.д.) В этом разделе приведен полный список поддерживаемых математических
функций HomeLisp-а.
|
|
|
|
|
Библиотека дополнительных функций
В этом разделе содержится описание дополнительных функций (написанных на HomeLisp-е). Эти функции выполняют
нетривиальные действия со списками, организуют ассоциативные списки, обеспечивают множественный выбор и т.д.
Большая часть этих функций взята из книги Лаврова и Силагадзе. Приводятся примеры вызовов функций
с краткими комментариями.
|
|
|
|
|
Работа в конструкторе диалогов
Этот раздел описывает встроенный в среду разработки HomeLisp экранный дизайнер (конструктор диалогов).
Визуальное проектирование диалогов служит неплохим дополнением к возможностям диалоговых функций HomeLisp.
Читатель, знакомый с дизайнером VBA не встретит никаких трудностей при чтении этого раздела.
|
|
|
|
|
Работа с библиотекой HomeLispLib.Exe
Это раздел предназначен тем, кто хочет использовать возможности языка Лисп, программируя на других
языках (VB, VBA, C++, Delphi - на любом языке, поддерживающем COM), а также тем, кто хотел бы писать скрипты (сценарии) на Лиспе.
Приводятся сведения о том, как зарегистрировать библиотеку, как выполнить необходимые настройки для использования скриптов,
а также подробно описываются свойства и методы класса clsLisp, "живущего" в библиотеке HomeLispLib.Exe.
|
|
|
|
|
Создание EXE-файлов
Здесь рассказывается, как можно создавать автономные исполняемые файлы для
программ, написанных на HomeLisp. Такие исполняемые файлы содержат в своем составе исполнительную
систему HomeLisp (т.е. все функции классов SUBR/FSUBR), а также библиотечные
функции классов EXPR/FEXPR/MACRO, которые разработчик пожелает включить в состав исполняемого
файла. При запуске такого файла, сначала инициализируется ядро HomeLisp, а затем начинает
выполняться стартовое S-выражение (которое разработчик задает при создании EXE-файла). Из стартового
выражения вызываются все необходимые функции.
|
|
|
|
|
HomeLisp и WEB
В этом разделе описывается Web-компонента HomeLisp, превращающая HomeLisp
в серверное приложение Web-сервера IIS. Описываются особенности конфигурирования, запуска, администрирования
и пользовательский интерфейс. Web-компонента, по замыслу автора, предназначена для использования
в составе учебного класса (где на рабочих местах обучаемых могут стоять маломощные, дешевые компьютеры).
|
|
|
|
|
Приложения
|
|
|
Очень краткое введение в язык Лисп
(Раздел находится в стадии доработки)
В этом разделе дается сжатое описание основных концепций языка Лисп. Раздел задуман исключительно в целях
полноты изложения (хотя, как надеется автор, он все же будет нелишним).
|
|
|
|
|
Приемы программирования и избранные задачи
(Раздел находится в стадии доработки)
Раздел содержит различные примеры программ на HomeLisp. Некоторые из них автор позаимствовал
из литературы, а некоторые (более простые) - придумал сам. Подробный разбор задач призван показать
все аспекты языка HomeLisp. Автор надеется, что раздел будет полезен читателям (особенно впервые
изучающим Лисп).
|
|
|
|
Алфавитный указатель функций HomeLisp
Здесь содержится сквозной алфавитный указатель всех функций HomeLisp (как встроенных,
так и написанных на HomeLisp).
|
|
|
|
Список литературы
(Раздел находится в стадии доработки)
Приводятся ссылки на печатные издания, а также на различные сетевые ресурсы, посвященные Лиспу.
|
|
|
|